123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533 |
- <?xml version="1.0"?>
- <!-- This file was automatically generated from C sources - DO NOT EDIT!
- To affect the contents of this file, edit the original C definitions,
- and/or use gtk-doc annotations. -->
- <repository version="1.2"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GObject" version="2.0"/>
- <package name="gio-2.0"/>
- <package name="gio-unix-2.0"/>
- <c:include name="gio/gdesktopappinfo.h"/>
- <c:include name="gio/gfiledescriptorbased.h"/>
- <c:include name="gio/gio.h"/>
- <c:include name="gio/gunixconnection.h"/>
- <c:include name="gio/gunixcredentialsmessage.h"/>
- <c:include name="gio/gunixfdlist.h"/>
- <c:include name="gio/gunixfdmessage.h"/>
- <c:include name="gio/gunixinputstream.h"/>
- <c:include name="gio/gunixmounts.h"/>
- <c:include name="gio/gunixoutputstream.h"/>
- <c:include name="gio/gunixsocketaddress.h"/>
- <namespace name="Gio"
- version="2.0"
- shared-library="libgio-2.0.so.0"
- c:identifier-prefixes="G"
- c:symbol-prefixes="g">
- <interface name="Action"
- c:symbol-prefix="action"
- c:type="GAction"
- glib:type-name="GAction"
- glib:get-type="g_action_get_type"
- glib:type-struct="ActionInterface">
- <doc xml:space="preserve">#GAction represents a single named action.
- The main interface to an action is that it can be activated with
- g_action_activate(). This results in the 'activate' signal being
- emitted. An activation has a #GVariant parameter (which may be
- %NULL). The correct type for the parameter is determined by a static
- parameter type (which is given at construction time).
- An action may optionally have a state, in which case the state may be
- set with g_action_change_state(). This call takes a #GVariant. The
- correct type for the state is determined by a static state type
- (which is given at construction time).
- The state may have a hint associated with it, specifying its valid
- range.
- #GAction is merely the interface to the concept of an action, as
- described above. Various implementations of actions exist, including
- #GSimpleAction.
- In all cases, the implementing class is responsible for storing the
- name of the action, the parameter type, the enabled state, the
- optional state type and the state and emitting the appropriate
- signals when these change. The implementor is responsible for filtering
- calls to g_action_activate() and g_action_change_state() for type
- safety and for the state being enabled.
- Probably the only useful thing to do with a #GAction is to put it
- inside of a #GSimpleActionGroup.</doc>
- <function name="name_is_valid"
- c:identifier="g_action_name_is_valid"
- version="2.38">
- <doc xml:space="preserve">Checks if @action_name is valid.
- @action_name is valid if it consists only of alphanumeric characters,
- plus '-' and '.'. The empty string is not a valid action name.
- It is an error to call this function with a non-utf8 @action_name.
- @action_name must not be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @action_name is valid</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">an potential action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_detailed_name"
- c:identifier="g_action_parse_detailed_name"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Parses a detailed action name into its separate name and target
- components.
- Detailed action names can have three formats.
- The first format is used to represent an action name with no target
- value and consists of just an action name containing no whitespace
- nor the characters ':', '(' or ')'. For example: "app.action".
- The second format is used to represent an action with a target value
- that is a non-empty string consisting only of alphanumerics, plus '-'
- and '.'. In that case, the action name and target value are
- separated by a double colon ("::"). For example:
- "app.action::target".
- The third format is used to represent an action with any type of
- target value, including strings. The target value follows the action
- name, surrounded in parens. For example: "app.action(42)". The
- target value is parsed using g_variant_parse(). If a tuple-typed
- value is desired, it must be specified in the same way, resulting in
- two sets of parens, for example: "app.action((1,2,3))". A string
- target can be specified this way as well: "app.action('target')".
- For strings, this third format must be used if * target value is
- empty or contains characters other than alphanumerics, '-' and '.'.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, else %FALSE with @error set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="detailed_name" transfer-ownership="none">
- <doc xml:space="preserve">a detailed action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="action_name"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the action name</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- <parameter name="target_value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the target value, or %NULL for no target</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </function>
- <function name="print_detailed_name"
- c:identifier="g_action_print_detailed_name"
- version="2.38">
- <doc xml:space="preserve">Formats a detailed action name from @action_name and @target_value.
- It is an error to call this function with an invalid action name.
- This function is the opposite of
- g_action_parse_detailed_action_name(). It will produce a string that
- can be parsed back to the @action_name and @target_value by that
- function.
- See that function for the types of strings that will be printed by
- this function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a detailed format string</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">a valid action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target_value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant target value, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="activate" invoker="activate" version="2.28">
- <doc xml:space="preserve">Activates the action.
- @parameter must be the correct type of parameter for the action (ie:
- the parameter type given at construction time). If the parameter
- type was %NULL then @parameter must also be %NULL.
- If the @parameter GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="change_state"
- invoker="change_state"
- version="2.30">
- <doc xml:space="preserve">Request for the state of @action to be changed to @value.
- The action must be stateful and @value must be of the correct type.
- See g_action_get_state_type().
- This call merely requests a change. The action may refuse to change
- its state or may change its state to something other than @value.
- See g_action_get_state_hint().
- If the @value GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_enabled" invoker="get_enabled" version="2.28">
- <doc xml:space="preserve">Checks if @action is currently enabled.
- An action must be enabled in order to be activated or in order to
- have its state changed from outside callers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the action is enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_name" invoker="get_name" version="2.28">
- <doc xml:space="preserve">Queries the name of @action.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_parameter_type"
- invoker="get_parameter_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the parameter that must be given when activating
- @action.
- When activating the action using g_action_activate(), the #GVariant
- given to that function must be of the type returned by this function.
- In the case that this function returns %NULL, you must not give any
- #GVariant, but %NULL instead.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the parameter type</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_state" invoker="get_state" version="2.28">
- <doc xml:space="preserve">Queries the current state of @action.
- If the action is not stateful then %NULL will be returned. If the
- action is stateful then the type of the return value is the type
- given by g_action_get_state_type().
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the current state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_state_hint"
- invoker="get_state_hint"
- version="2.28">
- <doc xml:space="preserve">Requests a hint about the valid range of values for the state of
- @action.
- If %NULL is returned it either means that the action is not stateful
- or that there is no hint about the valid range of values for the
- state of the action.
- If a #GVariant array is returned then each item in the array is a
- possible value for the state. If a #GVariant pair (ie: two-tuple) is
- returned then the tuple specifies the inclusive lower and upper bound
- of valid values for the state.
- In any case, the information is merely a hint. It may be possible to
- have a state value outside of the hinted range and setting a value
- within the range may fail.
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the state range hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_state_type"
- invoker="get_state_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the state of @action.
- If the action is stateful (e.g. created with
- g_simple_action_new_stateful()) then this function returns the
- #GVariantType of the state. This is the type of the initial value
- given as the state. All calls to g_action_change_state() must give a
- #GVariant of this type and g_action_get_state() will return a
- #GVariant of the same type.
- If the action is not stateful (e.g. created with g_simple_action_new())
- then this function will return %NULL. In that case, g_action_get_state()
- will return %NULL and you must not call g_action_change_state().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the state type, if the action is stateful</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="activate" c:identifier="g_action_activate" version="2.28">
- <doc xml:space="preserve">Activates the action.
- @parameter must be the correct type of parameter for the action (ie:
- the parameter type given at construction time). If the parameter
- type was %NULL then @parameter must also be %NULL.
- If the @parameter GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="change_state"
- c:identifier="g_action_change_state"
- version="2.30">
- <doc xml:space="preserve">Request for the state of @action to be changed to @value.
- The action must be stateful and @value must be of the correct type.
- See g_action_get_state_type().
- This call merely requests a change. The action may refuse to change
- its state or may change its state to something other than @value.
- See g_action_get_state_hint().
- If the @value GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_enabled"
- c:identifier="g_action_get_enabled"
- version="2.28">
- <doc xml:space="preserve">Checks if @action is currently enabled.
- An action must be enabled in order to be activated or in order to
- have its state changed from outside callers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the action is enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="g_action_get_name" version="2.28">
- <doc xml:space="preserve">Queries the name of @action.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_parameter_type"
- c:identifier="g_action_get_parameter_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the parameter that must be given when activating
- @action.
- When activating the action using g_action_activate(), the #GVariant
- given to that function must be of the type returned by this function.
- In the case that this function returns %NULL, you must not give any
- #GVariant, but %NULL instead.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the parameter type</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_state"
- c:identifier="g_action_get_state"
- version="2.28">
- <doc xml:space="preserve">Queries the current state of @action.
- If the action is not stateful then %NULL will be returned. If the
- action is stateful then the type of the return value is the type
- given by g_action_get_state_type().
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the current state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_state_hint"
- c:identifier="g_action_get_state_hint"
- version="2.28">
- <doc xml:space="preserve">Requests a hint about the valid range of values for the state of
- @action.
- If %NULL is returned it either means that the action is not stateful
- or that there is no hint about the valid range of values for the
- state of the action.
- If a #GVariant array is returned then each item in the array is a
- possible value for the state. If a #GVariant pair (ie: two-tuple) is
- returned then the tuple specifies the inclusive lower and upper bound
- of valid values for the state.
- In any case, the information is merely a hint. It may be possible to
- have a state value outside of the hinted range and setting a value
- within the range may fail.
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the state range hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_state_type"
- c:identifier="g_action_get_state_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the state of @action.
- If the action is stateful (e.g. created with
- g_simple_action_new_stateful()) then this function returns the
- #GVariantType of the state. This is the type of the initial value
- given as the state. All calls to g_action_change_state() must give a
- #GVariant of this type and g_action_get_state() will return a
- #GVariant of the same type.
- If the action is not stateful (e.g. created with g_simple_action_new())
- then this function will return %NULL. In that case, g_action_get_state()
- will return %NULL and you must not call g_action_change_state().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the state type, if the action is stateful</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="enabled" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">If @action is currently enabled.
- If the action is disabled then calls to g_action_activate() and
- g_action_change_state() have no effect.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="name" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">The name of the action. This is mostly meaningful for identifying
- the action once it has been added to a #GActionGroup. It is immutable.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="parameter-type" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">The type of the parameter that must be given when activating the
- action. This is immutable, and may be %NULL if no parameter is needed when
- activating the action.</doc>
- <type name="GLib.VariantType"/>
- </property>
- <property name="state" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">The state of the action, or %NULL if the action is stateless.</doc>
- <type name="GLib.Variant"/>
- </property>
- <property name="state-type" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">The #GVariantType of the state that the action has, or %NULL if the
- action is stateless. This is immutable.</doc>
- <type name="GLib.VariantType"/>
- </property>
- </interface>
- <record name="ActionEntry" c:type="GActionEntry">
- <doc xml:space="preserve">This struct defines a single action. It is for use with
- g_action_map_add_action_entries().
- The order of the items in the structure are intended to reflect
- frequency of use. It is permissible to use an incomplete initialiser
- in order to leave some of the later values as %NULL. All values
- after @name are optional. Additional optional fields may be added in
- the future.
- See g_action_map_add_action_entries() for an example.</doc>
- <field name="name" writable="1">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="activate">
- <callback name="activate">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </parameter>
- <parameter name="parameter" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="parameter_type" writable="1">
- <doc xml:space="preserve">the type of the parameter that must be passed to the
- activate function for this action, given as a single
- GVariant type string (or %NULL for no parameter)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="state" writable="1">
- <doc xml:space="preserve">the initial state for this action, given in
- [GVariant text format][gvariant-text]. The state is parsed
- with no extra type information, so type tags must be added to
- the string if they are necessary. Stateless actions should
- give %NULL here.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="change_state">
- <callback name="change_state">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gsize" fixed-size="3">
- <type name="gsize" c:type="gsize"/>
- </array>
- </field>
- </record>
- <interface name="ActionGroup"
- c:symbol-prefix="action_group"
- c:type="GActionGroup"
- glib:type-name="GActionGroup"
- glib:get-type="g_action_group_get_type"
- glib:type-struct="ActionGroupInterface">
- <doc xml:space="preserve">#GActionGroup represents a group of actions. Actions can be used to
- expose functionality in a structured way, either from one part of a
- program to another, or to the outside world. Action groups are often
- used together with a #GMenuModel that provides additional
- representation data for displaying the actions to the user, e.g. in
- a menu.
- The main way to interact with the actions in a GActionGroup is to
- activate them with g_action_group_activate_action(). Activating an
- action may require a #GVariant parameter. The required type of the
- parameter can be inquired with g_action_group_get_action_parameter_type().
- Actions may be disabled, see g_action_group_get_action_enabled().
- Activating a disabled action has no effect.
- Actions may optionally have a state in the form of a #GVariant. The
- current state of an action can be inquired with
- g_action_group_get_action_state(). Activating a stateful action may
- change its state, but it is also possible to set the state by calling
- g_action_group_change_action_state().
- As typical example, consider a text editing application which has an
- option to change the current font to 'bold'. A good way to represent
- this would be a stateful action, with a boolean state. Activating the
- action would toggle the state.
- Each action in the group has a unique name (which is a string). All
- method calls, except g_action_group_list_actions() take the name of
- an action as an argument.
- The #GActionGroup API is meant to be the 'public' API to the action
- group. The calls here are exactly the interaction that 'external
- forces' (eg: UI, incoming D-Bus messages, etc.) are supposed to have
- with actions. 'Internal' APIs (ie: ones meant only to be accessed by
- the action group implementation) are found on subclasses. This is
- why you will find - for example - g_action_group_get_action_enabled()
- but not an equivalent set() call.
- Signals are emitted on the action group in response to state changes
- on individual actions.
- Implementations of #GActionGroup should provide implementations for
- the virtual functions g_action_group_list_actions() and
- g_action_group_query_action(). The other virtual functions should
- not be implemented - their "wrappers" are actually implemented with
- calls to g_action_group_query_action().</doc>
- <virtual-method name="action_added"
- invoker="action_added"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-added signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="action_enabled_changed"
- invoker="action_enabled_changed"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-enabled-changed signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether or not the action is now enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="action_removed"
- invoker="action_removed"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-removed signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="action_state_changed"
- invoker="action_state_changed"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-state-changed signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the new state of the named action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="activate_action"
- invoker="activate_action"
- version="2.28">
- <doc xml:space="preserve">Activate the named action within @action_group.
- If the action is expecting a parameter, then the correct type of
- parameter must be given as @parameter. If the action is expecting no
- parameters then @parameter must be %NULL. See
- g_action_group_get_action_parameter_type().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to activate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="change_action_state"
- invoker="change_action_state"
- version="2.28">
- <doc xml:space="preserve">Request for the state of the named action within @action_group to be
- changed to @value.
- The action must be stateful and @value must be of the correct type.
- See g_action_group_get_action_state_type().
- This call merely requests a change. The action may refuse to change
- its state or may change its state to something other than @value.
- See g_action_group_get_action_state_hint().
- If the @value GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to request the change on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_action_enabled"
- invoker="get_action_enabled"
- version="2.28">
- <doc xml:space="preserve">Checks if the named action within @action_group is currently enabled.
- An action must be enabled in order to be activated or in order to
- have its state changed from outside callers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether or not the action is currently enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_action_parameter_type"
- invoker="get_action_parameter_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the parameter that must be given when activating
- the named action within @action_group.
- When activating the action using g_action_group_activate_action(),
- the #GVariant given to that function must be of the type returned
- by this function.
- In the case that this function returns %NULL, you must not give any
- #GVariant, but %NULL instead.
- The parameter type of a particular action will never change but it is
- possible for an action to be removed and for a new action to be added
- with the same name but a different parameter type.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the parameter type</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_action_state"
- invoker="get_action_state"
- version="2.28">
- <doc xml:space="preserve">Queries the current state of the named action within @action_group.
- If the action is not stateful then %NULL will be returned. If the
- action is stateful then the type of the return value is the type
- given by g_action_group_get_action_state_type().
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the current state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_action_state_hint"
- invoker="get_action_state_hint"
- version="2.28">
- <doc xml:space="preserve">Requests a hint about the valid range of values for the state of the
- named action within @action_group.
- If %NULL is returned it either means that the action is not stateful
- or that there is no hint about the valid range of values for the
- state of the action.
- If a #GVariant array is returned then each item in the array is a
- possible value for the state. If a #GVariant pair (ie: two-tuple) is
- returned then the tuple specifies the inclusive lower and upper bound
- of valid values for the state.
- In any case, the information is merely a hint. It may be possible to
- have a state value outside of the hinted range and setting a value
- within the range may fail.
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the state range hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_action_state_type"
- invoker="get_action_state_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the state of the named action within
- @action_group.
- If the action is stateful then this function returns the
- #GVariantType of the state. All calls to
- g_action_group_change_action_state() must give a #GVariant of this
- type and g_action_group_get_action_state() will return a #GVariant
- of the same type.
- If the action is not stateful then this function will return %NULL.
- In that case, g_action_group_get_action_state() will return %NULL
- and you must not call g_action_group_change_action_state().
- The state type of a particular action will never change but it is
- possible for an action to be removed and for a new action to be added
- with the same name but a different state type.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the state type, if the action is stateful</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="has_action" invoker="has_action" version="2.28">
- <doc xml:space="preserve">Checks if the named action exists within @action_group.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the named action exists</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to check for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="list_actions"
- invoker="list_actions"
- version="2.28">
- <doc xml:space="preserve">Lists the actions contained within @action_group.
- The caller is responsible for freeing the list with g_strfreev() when
- it is no longer required.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of the names of the
- actions in the group</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_action"
- invoker="query_action"
- version="2.32">
- <doc xml:space="preserve">Queries all aspects of the named action within an @action_group.
- This function acquires the information available from
- g_action_group_has_action(), g_action_group_get_action_enabled(),
- g_action_group_get_action_parameter_type(),
- g_action_group_get_action_state_type(),
- g_action_group_get_action_state_hint() and
- g_action_group_get_action_state() with a single function call.
- This provides two main benefits.
- The first is the improvement in efficiency that comes with not having
- to perform repeated lookups of the action in order to discover
- different things about it. The second is that implementing
- #GActionGroup can now be done by only overriding this one virtual
- function.
- The interface provides a default implementation of this function that
- calls the individual functions, as required, to fetch the
- information. The interface also provides default implementations of
- those functions that call this function. All implementations,
- therefore, must override either this function or all of the others.
- If the action exists, %TRUE is returned and any of the requested
- fields (as indicated by having a non-%NULL reference passed in) are
- filled. If the action doesn't exist, %FALSE is returned and the
- fields may or may not have been modified.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the action exists, else %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enabled"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">if the action is presently enabled</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="parameter_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter type, or %NULL if none needed</doc>
- <type name="GLib.VariantType" c:type="const GVariantType**"/>
- </parameter>
- <parameter name="state_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the state type, or %NULL if stateless</doc>
- <type name="GLib.VariantType" c:type="const GVariantType**"/>
- </parameter>
- <parameter name="state_hint"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the state hint, or %NULL if none</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the current state, or %NULL if stateless</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="action_added"
- c:identifier="g_action_group_action_added"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-added signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="action_enabled_changed"
- c:identifier="g_action_group_action_enabled_changed"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-enabled-changed signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether or not the action is now enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="action_removed"
- c:identifier="g_action_group_action_removed"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-removed signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="action_state_changed"
- c:identifier="g_action_group_action_state_changed"
- version="2.28">
- <doc xml:space="preserve">Emits the #GActionGroup::action-state-changed signal on @action_group.
- This function should only be called by #GActionGroup implementations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the new state of the named action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="activate_action"
- c:identifier="g_action_group_activate_action"
- version="2.28">
- <doc xml:space="preserve">Activate the named action within @action_group.
- If the action is expecting a parameter, then the correct type of
- parameter must be given as @parameter. If the action is expecting no
- parameters then @parameter must be %NULL. See
- g_action_group_get_action_parameter_type().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to activate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="change_action_state"
- c:identifier="g_action_group_change_action_state"
- version="2.28">
- <doc xml:space="preserve">Request for the state of the named action within @action_group to be
- changed to @value.
- The action must be stateful and @value must be of the correct type.
- See g_action_group_get_action_state_type().
- This call merely requests a change. The action may refuse to change
- its state or may change its state to something other than @value.
- See g_action_group_get_action_state_hint().
- If the @value GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to request the change on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_action_enabled"
- c:identifier="g_action_group_get_action_enabled"
- version="2.28">
- <doc xml:space="preserve">Checks if the named action within @action_group is currently enabled.
- An action must be enabled in order to be activated or in order to
- have its state changed from outside callers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether or not the action is currently enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_action_parameter_type"
- c:identifier="g_action_group_get_action_parameter_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the parameter that must be given when activating
- the named action within @action_group.
- When activating the action using g_action_group_activate_action(),
- the #GVariant given to that function must be of the type returned
- by this function.
- In the case that this function returns %NULL, you must not give any
- #GVariant, but %NULL instead.
- The parameter type of a particular action will never change but it is
- possible for an action to be removed and for a new action to be added
- with the same name but a different parameter type.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the parameter type</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_action_state"
- c:identifier="g_action_group_get_action_state"
- version="2.28">
- <doc xml:space="preserve">Queries the current state of the named action within @action_group.
- If the action is not stateful then %NULL will be returned. If the
- action is stateful then the type of the return value is the type
- given by g_action_group_get_action_state_type().
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the current state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_action_state_hint"
- c:identifier="g_action_group_get_action_state_hint"
- version="2.28">
- <doc xml:space="preserve">Requests a hint about the valid range of values for the state of the
- named action within @action_group.
- If %NULL is returned it either means that the action is not stateful
- or that there is no hint about the valid range of values for the
- state of the action.
- If a #GVariant array is returned then each item in the array is a
- possible value for the state. If a #GVariant pair (ie: two-tuple) is
- returned then the tuple specifies the inclusive lower and upper bound
- of valid values for the state.
- In any case, the information is merely a hint. It may be possible to
- have a state value outside of the hinted range and setting a value
- within the range may fail.
- The return value (if non-%NULL) should be freed with
- g_variant_unref() when it is no longer required.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the state range hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_action_state_type"
- c:identifier="g_action_group_get_action_state_type"
- version="2.28">
- <doc xml:space="preserve">Queries the type of the state of the named action within
- @action_group.
- If the action is stateful then this function returns the
- #GVariantType of the state. All calls to
- g_action_group_change_action_state() must give a #GVariant of this
- type and g_action_group_get_action_state() will return a #GVariant
- of the same type.
- If the action is not stateful then this function will return %NULL.
- In that case, g_action_group_get_action_state() will return %NULL
- and you must not call g_action_group_change_action_state().
- The state type of a particular action will never change but it is
- possible for an action to be removed and for a new action to be added
- with the same name but a different state type.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the state type, if the action is stateful</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_action"
- c:identifier="g_action_group_has_action"
- version="2.28">
- <doc xml:space="preserve">Checks if the named action exists within @action_group.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the named action exists</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to check for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_actions"
- c:identifier="g_action_group_list_actions"
- version="2.28">
- <doc xml:space="preserve">Lists the actions contained within @action_group.
- The caller is responsible for freeing the list with g_strfreev() when
- it is no longer required.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of the names of the
- actions in the group</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="query_action"
- c:identifier="g_action_group_query_action"
- version="2.32">
- <doc xml:space="preserve">Queries all aspects of the named action within an @action_group.
- This function acquires the information available from
- g_action_group_has_action(), g_action_group_get_action_enabled(),
- g_action_group_get_action_parameter_type(),
- g_action_group_get_action_state_type(),
- g_action_group_get_action_state_hint() and
- g_action_group_get_action_state() with a single function call.
- This provides two main benefits.
- The first is the improvement in efficiency that comes with not having
- to perform repeated lookups of the action in order to discover
- different things about it. The second is that implementing
- #GActionGroup can now be done by only overriding this one virtual
- function.
- The interface provides a default implementation of this function that
- calls the individual functions, as required, to fetch the
- information. The interface also provides default implementations of
- those functions that call this function. All implementations,
- therefore, must override either this function or all of the others.
- If the action exists, %TRUE is returned and any of the requested
- fields (as indicated by having a non-%NULL reference passed in) are
- filled. If the action doesn't exist, %FALSE is returned and the
- fields may or may not have been modified.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the action exists, else %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enabled"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">if the action is presently enabled</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="parameter_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter type, or %NULL if none needed</doc>
- <type name="GLib.VariantType" c:type="const GVariantType**"/>
- </parameter>
- <parameter name="state_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the state type, or %NULL if stateless</doc>
- <type name="GLib.VariantType" c:type="const GVariantType**"/>
- </parameter>
- <parameter name="state_hint"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the state hint, or %NULL if none</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the current state, or %NULL if stateless</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="action-added" when="last" detailed="1" version="2.28">
- <doc xml:space="preserve">Signals that a new action was just added to the group.
- This signal is emitted after the action has been added
- and is now visible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action in @action_group</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="action-enabled-changed"
- when="last"
- detailed="1"
- version="2.28">
- <doc xml:space="preserve">Signals that the enabled status of the named action has changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action in @action_group</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether the action is enabled or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="action-removed"
- when="last"
- detailed="1"
- version="2.28">
- <doc xml:space="preserve">Signals that an action is just about to be removed from the group.
- This signal is emitted before the action is removed, so the action
- is still visible and can be queried from the signal handler.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action in @action_group</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="action-state-changed"
- when="last"
- detailed="1"
- version="2.28">
- <doc xml:space="preserve">Signals that the state of the named action has changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action in @action_group</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new value of the state</doc>
- <type name="GLib.Variant"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="ActionGroupInterface"
- c:type="GActionGroupInterface"
- glib:is-gtype-struct-for="ActionGroup"
- version="2.28">
- <doc xml:space="preserve">The virtual function table for #GActionGroup.</doc>
- <field name="g_iface">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="has_action">
- <callback name="has_action">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the named action exists</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to check for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="list_actions">
- <callback name="list_actions">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of the names of the
- actions in the group</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_action_enabled">
- <callback name="get_action_enabled">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether or not the action is currently enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_action_parameter_type">
- <callback name="get_action_parameter_type">
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the parameter type</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_action_state_type">
- <callback name="get_action_state_type">
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the state type, if the action is stateful</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_action_state_hint">
- <callback name="get_action_state_hint">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the state range hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_action_state">
- <callback name="get_action_state">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the current state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="change_action_state">
- <callback name="change_action_state">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to request the change on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="activate_action">
- <callback name="activate_action">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to activate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">parameters to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="action_added">
- <callback name="action_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="action_removed">
- <callback name="action_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="action_enabled_changed">
- <callback name="action_enabled_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether or not the action is now enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="action_state_changed">
- <callback name="action_state_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the new state of the named action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_action">
- <callback name="query_action">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the action exists, else %FALSE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action in the group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="enabled"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">if the action is presently enabled</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="parameter_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter type, or %NULL if none needed</doc>
- <type name="GLib.VariantType" c:type="const GVariantType**"/>
- </parameter>
- <parameter name="state_type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the state type, or %NULL if stateless</doc>
- <type name="GLib.VariantType" c:type="const GVariantType**"/>
- </parameter>
- <parameter name="state_hint"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the state hint, or %NULL if none</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- <parameter name="state"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the current state, or %NULL if stateless</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="ActionInterface"
- c:type="GActionInterface"
- glib:is-gtype-struct-for="Action"
- version="2.28">
- <doc xml:space="preserve">The virtual function table for #GAction.</doc>
- <field name="g_iface">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_name">
- <callback name="get_name">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_parameter_type">
- <callback name="get_parameter_type">
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the parameter type</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_state_type">
- <callback name="get_state_type">
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the state type, if the action is stateful</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_state_hint">
- <callback name="get_state_hint">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the state range hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_enabled">
- <callback name="get_enabled">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the action is enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_state">
- <callback name="get_state">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the current state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="change_state">
- <callback name="change_state">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="activate">
- <callback name="activate">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="ActionMap"
- c:symbol-prefix="action_map"
- c:type="GActionMap"
- glib:type-name="GActionMap"
- glib:get-type="g_action_map_get_type"
- glib:type-struct="ActionMapInterface">
- <doc xml:space="preserve">The GActionMap interface is implemented by #GActionGroup
- implementations that operate by containing a number of
- named #GAction instances, such as #GSimpleActionGroup.
- One useful application of this interface is to map the
- names of actions from various action groups to unique,
- prefixed names (e.g. by prepending "app." or "win.").
- This is the motivation for the 'Map' part of the interface
- name.</doc>
- <virtual-method name="add_action" invoker="add_action" version="2.32">
- <doc xml:space="preserve">Adds an action to the @action_map.
- If the action map already contains an action with the same name
- as @action then the old action is dropped from the action map.
- The action map takes its own reference on @action.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_action"
- invoker="lookup_action"
- version="2.32">
- <doc xml:space="preserve">Looks up the action with the name @action_name in @action_map.
- If no such action exists, returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GAction, or %NULL</doc>
- <type name="Action" c:type="GAction*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="remove_action"
- invoker="remove_action"
- version="2.32">
- <doc xml:space="preserve">Removes the named action from the action map.
- If no action of this name is in the map then nothing happens.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_action"
- c:identifier="g_action_map_add_action"
- version="2.32">
- <doc xml:space="preserve">Adds an action to the @action_map.
- If the action map already contains an action with the same name
- as @action then the old action is dropped from the action map.
- The action map takes its own reference on @action.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_action_entries"
- c:identifier="g_action_map_add_action_entries"
- version="2.32">
- <doc xml:space="preserve">A convenience function for creating multiple #GSimpleAction instances
- and adding them to a #GActionMap.
- Each action is constructed as per one #GActionEntry.
- |[<!-- language="C" -->
- static void
- activate_quit (GSimpleAction *simple,
- GVariant *parameter,
- gpointer user_data)
- {
- exit (0);
- }
- static void
- activate_print_string (GSimpleAction *simple,
- GVariant *parameter,
- gpointer user_data)
- {
- g_print ("%s\n", g_variant_get_string (parameter, NULL));
- }
- static GActionGroup *
- create_action_group (void)
- {
- const GActionEntry entries[] = {
- { "quit", activate_quit },
- { "print-string", activate_print_string, "s" }
- };
- GSimpleActionGroup *group;
- group = g_simple_action_group_new ();
- g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL);
- return G_ACTION_GROUP (group);
- }
- ]|</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="entries" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to
- the first item in an array of #GActionEntry structs</doc>
- <array length="1" zero-terminated="0" c:type="GActionEntry*">
- <type name="ActionEntry"/>
- </array>
- </parameter>
- <parameter name="n_entries" transfer-ownership="none">
- <doc xml:space="preserve">the length of @entries, or -1 if @entries is %NULL-terminated</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the user data for signal connections</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_action"
- c:identifier="g_action_map_lookup_action"
- version="2.32">
- <doc xml:space="preserve">Looks up the action with the name @action_name in @action_map.
- If no such action exists, returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GAction, or %NULL</doc>
- <type name="Action" c:type="GAction*"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_action"
- c:identifier="g_action_map_remove_action"
- version="2.32">
- <doc xml:space="preserve">Removes the named action from the action map.
- If no action of this name is in the map then nothing happens.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="ActionMapInterface"
- c:type="GActionMapInterface"
- glib:is-gtype-struct-for="ActionMap"
- version="2.32">
- <doc xml:space="preserve">The virtual function table for #GActionMap.</doc>
- <field name="g_iface">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="lookup_action">
- <callback name="lookup_action">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GAction, or %NULL</doc>
- <type name="Action" c:type="GAction*"/>
- </return-value>
- <parameters>
- <parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_action">
- <callback name="add_action">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="remove_action">
- <callback name="remove_action">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="action_map" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionMap</doc>
- <type name="ActionMap" c:type="GActionMap*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="AppInfo"
- c:symbol-prefix="app_info"
- c:type="GAppInfo"
- glib:type-name="GAppInfo"
- glib:get-type="g_app_info_get_type"
- glib:type-struct="AppInfoIface">
- <doc xml:space="preserve">#GAppInfo and #GAppLaunchContext are used for describing and launching
- applications installed on the system.
- As of GLib 2.20, URIs will always be converted to POSIX paths
- (using g_file_get_path()) when using g_app_info_launch() even if
- the application requested an URI and not a POSIX path. For example
- for an desktop-file based application with Exec key `totem
- %U` and a single URI, `sftp://foo/file.avi`, then
- `/home/user/.gvfs/sftp on foo/file.avi` will be passed. This will
- only work if a set of suitable GIO extensions (such as gvfs 2.26
- compiled with FUSE support), is available and operational; if this
- is not the case, the URI will be passed unmodified to the application.
- Some URIs, such as `mailto:`, of course cannot be mapped to a POSIX
- path (in gvfs there's no FUSE mount for it); such URIs will be
- passed unmodified to the application.
- Specifically for gvfs 2.26 and later, the POSIX URI will be mapped
- back to the GIO URI in the #GFile constructors (since gvfs
- implements the #GVfs extension point). As such, if the application
- needs to examine the URI, it needs to use g_file_get_uri() or
- similar on #GFile. In other words, an application cannot assume
- that the URI passed to e.g. g_file_new_for_commandline_arg() is
- equal to the result of g_file_get_uri(). The following snippet
- illustrates this:
- |[
- GFile *f;
- char *uri;
- file = g_file_new_for_commandline_arg (uri_from_commandline);
- uri = g_file_get_uri (file);
- strcmp (uri, uri_from_commandline) == 0;
- g_free (uri);
- if (g_file_has_uri_scheme (file, "cdda"))
- {
- // do something special with uri
- }
- g_object_unref (file);
- ]|
- This code will work when both `cdda://sr0/Track 1.wav` and
- `/home/user/.gvfs/cdda on sr0/Track 1.wav` is passed to the
- application. It should be noted that it's generally not safe
- for applications to rely on the format of a particular URIs.
- Different launcher applications (e.g. file managers) may have
- different ideas of what a given URI means.</doc>
- <function name="create_from_commandline"
- c:identifier="g_app_info_create_from_commandline"
- throws="1">
- <doc xml:space="preserve">Creates a new #GAppInfo from the given information.
- Note that for @commandline, the quoting rules of the Exec key of the
- [freedesktop.org Desktop Entry Specification](http://freedesktop.org/Standards/desktop-entry-spec)
- are applied. For example, if the @commandline contains
- percent-encoded URIs, the percent-character must be doubled in order to prevent it from
- being swallowed by Exec key unquoting. See the specification for exact quoting rules.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">new #GAppInfo for given command.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="commandline" transfer-ownership="none">
- <doc xml:space="preserve">the commandline to use</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="application_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the application name, or %NULL to use @commandline</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags that can specify details of the created #GAppInfo</doc>
- <type name="AppInfoCreateFlags" c:type="GAppInfoCreateFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_all" c:identifier="g_app_info_get_all">
- <doc xml:space="preserve">Gets a list of all of the applications currently registered
- on this system.
- For desktop files, this includes applications that have
- `NoDisplay=true` set or are excluded from display by means
- of `OnlyShowIn` or `NotShowIn`. See g_app_info_should_show().
- The returned list does not include applications which have
- the `Hidden` key set.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GList of references to #GAppInfos.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- </function>
- <function name="get_all_for_type"
- c:identifier="g_app_info_get_all_for_type">
- <doc xml:space="preserve">Gets a list of all #GAppInfos for a given content type,
- including the recommended and fallback #GAppInfos. See
- g_app_info_get_recommended_for_type() and
- g_app_info_get_fallback_for_type().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList of #GAppInfos
- for given @content_type or %NULL on error.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_default_for_type"
- c:identifier="g_app_info_get_default_for_type">
- <doc xml:space="preserve">Gets the default #GAppInfo for a given content type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @content_type or
- %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="must_support_uris" transfer-ownership="none">
- <doc xml:space="preserve">if %TRUE, the #GAppInfo is expected to
- support URIs</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_default_for_uri_scheme"
- c:identifier="g_app_info_get_default_for_uri_scheme">
- <doc xml:space="preserve">Gets the default application for handling URIs with
- the given URI scheme. A URI scheme is the initial part
- of the URI, up to but not including the ':', e.g. "http",
- "ftp" or "sip".</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @uri_scheme or %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_fallback_for_type"
- c:identifier="g_app_info_get_fallback_for_type"
- version="2.28">
- <doc xml:space="preserve">Gets a list of fallback #GAppInfos for a given content type, i.e.
- those applications which claim to support the given content type
- by MIME type subclassing and not directly.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList of #GAppInfos
- for given @content_type or %NULL on error.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_recommended_for_type"
- c:identifier="g_app_info_get_recommended_for_type"
- version="2.28">
- <doc xml:space="preserve">Gets a list of recommended #GAppInfos for a given content type, i.e.
- those applications which claim to support the given content type exactly,
- and not by MIME type subclassing.
- Note that the first application of the list is the last used one, i.e.
- the last one for which g_app_info_set_as_last_used_for_type() has been
- called.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList of #GAppInfos
- for given @content_type or %NULL on error.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="launch_default_for_uri"
- c:identifier="g_app_info_launch_default_for_uri"
- throws="1">
- <doc xml:space="preserve">Utility function that launches the default application
- registered to handle the specified uri. Synchronous I/O
- is done on the uri to detect the type of the file if
- required.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">the uri to show</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GAppLaunchContext.</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </function>
- <function name="reset_type_associations"
- c:identifier="g_app_info_reset_type_associations"
- version="2.20">
- <doc xml:space="preserve">Removes all changes to the type associations done by
- g_app_info_set_as_default_for_type(),
- g_app_info_set_as_default_for_extension(),
- g_app_info_add_supports_type() or
- g_app_info_remove_supports_type().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a content type</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="add_supports_type"
- invoker="add_supports_type"
- throws="1">
- <doc xml:space="preserve">Adds a content type to the application information to indicate the
- application is capable of opening files with the given content type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_delete" invoker="can_delete" version="2.20">
- <doc xml:space="preserve">Obtains the information whether the #GAppInfo can be deleted.
- See g_app_info_delete().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo can be deleted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_remove_supports_type"
- invoker="can_remove_supports_type">
- <doc xml:space="preserve">Checks if a supported content type can be removed from an application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is possible to remove supported
- content types from a given @appinfo, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="do_delete" invoker="delete" version="2.20">
- <doc xml:space="preserve">Tries to delete a #GAppInfo.
- On some platforms, there may be a difference between user-defined
- #GAppInfos which can be deleted, and system-wide ones which cannot.
- See g_app_info_can_delete().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo has been deleted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="dup" invoker="dup">
- <doc xml:space="preserve">Creates a duplicate of a #GAppInfo.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a duplicate of @appinfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="equal" invoker="equal">
- <doc xml:space="preserve">Checks if two #GAppInfos are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="appinfo2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_commandline"
- invoker="get_commandline"
- version="2.20">
- <doc xml:space="preserve">Gets the commandline with which the application will be
- started.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the @appinfo's commandline,
- or %NULL if this information is not available</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_description" invoker="get_description">
- <doc xml:space="preserve">Gets a human-readable description of an installed application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing a description of the
- application @appinfo, or %NULL if none.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_display_name"
- invoker="get_display_name"
- version="2.24">
- <doc xml:space="preserve">Gets the display name of the application. The display name is often more
- descriptive to the user than the name itself.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the display name of the application for @appinfo, or the name if
- no display name is available.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_executable" invoker="get_executable">
- <doc xml:space="preserve">Gets the executable's name for the installed application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the @appinfo's application
- binaries name</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_icon" invoker="get_icon">
- <doc xml:space="preserve">Gets the icon for the application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default #GIcon for @appinfo or %NULL
- if there is no default icon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_id" invoker="get_id">
- <doc xml:space="preserve">Gets the ID of an application. An id is a string that
- identifies the application. The exact format of the id is
- platform dependent. For instance, on Unix this is the
- desktop file id from the xdg menu specification.
- Note that the returned ID may be %NULL, depending on how
- the @appinfo has been constructed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the application's ID.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_name" invoker="get_name">
- <doc xml:space="preserve">Gets the installed name of the application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the application for @appinfo.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_supported_types"
- invoker="get_supported_types"
- version="2.34">
- <doc xml:space="preserve">Retrieves the list of content types that @app_info claims to support.
- If this information is not provided by the environment, this function
- will return %NULL.
- This function does not take in consideration associations added with
- g_app_info_add_supports_type(), but only those exported directly by
- the application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">
- a list of content types.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo that can handle files</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="launch" invoker="launch" throws="1">
- <doc xml:space="preserve">Launches the application. Passes @files to the launched application
- as arguments, using the optional @launch_context to get information
- about the details of the launcher (like what screen it is on).
- On error, @error will be set accordingly.
- To launch the application without arguments pass a %NULL @files list.
- Note that even if the launch is successful the application launched
- can fail to start if it runs into problems during startup. There is
- no way to detect this.
- Some URIs can be changed when passed through a GFile (for instance
- unsupported URIs with strange formats like mailto:), so if you have
- a textual URI you want to pass in as argument, consider using
- g_app_info_launch_uris() instead.
- The launched application inherits the environment of the launching
- process, but it can be modified with g_app_launch_context_setenv()
- and g_app_launch_context_unsetenv().
- On UNIX, this function sets the `GIO_LAUNCHED_DESKTOP_FILE`
- environment variable with the path of the launched desktop file and
- `GIO_LAUNCHED_DESKTOP_FILE_PID` to the process id of the launched
- process. This can be used to ignore `GIO_LAUNCHED_DESKTOP_FILE`,
- should it be inherited by further processes. The `DISPLAY` and
- `DESKTOP_STARTUP_ID` environment variables are also set, based
- on information provided in @launch_context.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="files"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GList of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext or %NULL</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="launch_uris" invoker="launch_uris" throws="1">
- <doc xml:space="preserve">Launches the application. This passes the @uris to the launched application
- as arguments, using the optional @launch_context to get information
- about the details of the launcher (like what screen it is on).
- On error, @error will be set accordingly.
- To launch the application without arguments pass a %NULL @uris list.
- Note that even if the launch is successful the application launched
- can fail to start if it runs into problems during startup. There is
- no way to detect this.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="uris"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GList containing URIs to launch.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext or %NULL</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="remove_supports_type"
- invoker="remove_supports_type"
- throws="1">
- <doc xml:space="preserve">Removes a supported type from an application, if possible.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_as_default_for_extension"
- invoker="set_as_default_for_extension"
- throws="1">
- <doc xml:space="preserve">Sets the application as the default handler for the given file extension.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file extension (without the dot).</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_as_default_for_type"
- invoker="set_as_default_for_type"
- throws="1">
- <doc xml:space="preserve">Sets the application as the default handler for a given type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_as_last_used_for_type"
- invoker="set_as_last_used_for_type"
- throws="1">
- <doc xml:space="preserve">Sets the application as the last used application for a given type.
- This will make the application appear as first in the list returned
- by g_app_info_get_recommended_for_type(), regardless of the default
- application for that content type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="should_show" invoker="should_show">
- <doc xml:space="preserve">Checks if the application info should be shown in menus that
- list available applications.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo should be shown, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="supports_files" invoker="supports_files">
- <doc xml:space="preserve">Checks if the application accepts files as arguments.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo supports files.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="supports_uris" invoker="supports_uris">
- <doc xml:space="preserve">Checks if the application supports reading files and directories from URIs.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo supports URIs.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="add_supports_type"
- c:identifier="g_app_info_add_supports_type"
- throws="1">
- <doc xml:space="preserve">Adds a content type to the application information to indicate the
- application is capable of opening files with the given content type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_delete"
- c:identifier="g_app_info_can_delete"
- version="2.20">
- <doc xml:space="preserve">Obtains the information whether the #GAppInfo can be deleted.
- See g_app_info_delete().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo can be deleted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_remove_supports_type"
- c:identifier="g_app_info_can_remove_supports_type">
- <doc xml:space="preserve">Checks if a supported content type can be removed from an application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is possible to remove supported
- content types from a given @appinfo, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="delete" c:identifier="g_app_info_delete" version="2.20">
- <doc xml:space="preserve">Tries to delete a #GAppInfo.
- On some platforms, there may be a difference between user-defined
- #GAppInfos which can be deleted, and system-wide ones which cannot.
- See g_app_info_can_delete().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo has been deleted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="dup" c:identifier="g_app_info_dup">
- <doc xml:space="preserve">Creates a duplicate of a #GAppInfo.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a duplicate of @appinfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="equal" c:identifier="g_app_info_equal">
- <doc xml:space="preserve">Checks if two #GAppInfos are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="appinfo2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_commandline"
- c:identifier="g_app_info_get_commandline"
- version="2.20">
- <doc xml:space="preserve">Gets the commandline with which the application will be
- started.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the @appinfo's commandline,
- or %NULL if this information is not available</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_description" c:identifier="g_app_info_get_description">
- <doc xml:space="preserve">Gets a human-readable description of an installed application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing a description of the
- application @appinfo, or %NULL if none.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_display_name"
- c:identifier="g_app_info_get_display_name"
- version="2.24">
- <doc xml:space="preserve">Gets the display name of the application. The display name is often more
- descriptive to the user than the name itself.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the display name of the application for @appinfo, or the name if
- no display name is available.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_executable" c:identifier="g_app_info_get_executable">
- <doc xml:space="preserve">Gets the executable's name for the installed application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the @appinfo's application
- binaries name</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_icon" c:identifier="g_app_info_get_icon">
- <doc xml:space="preserve">Gets the icon for the application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default #GIcon for @appinfo or %NULL
- if there is no default icon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_id" c:identifier="g_app_info_get_id">
- <doc xml:space="preserve">Gets the ID of an application. An id is a string that
- identifies the application. The exact format of the id is
- platform dependent. For instance, on Unix this is the
- desktop file id from the xdg menu specification.
- Note that the returned ID may be %NULL, depending on how
- the @appinfo has been constructed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the application's ID.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="g_app_info_get_name">
- <doc xml:space="preserve">Gets the installed name of the application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the application for @appinfo.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_supported_types"
- c:identifier="g_app_info_get_supported_types"
- version="2.34">
- <doc xml:space="preserve">Retrieves the list of content types that @app_info claims to support.
- If this information is not provided by the environment, this function
- will return %NULL.
- This function does not take in consideration associations added with
- g_app_info_add_supports_type(), but only those exported directly by
- the application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">
- a list of content types.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo that can handle files</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="launch" c:identifier="g_app_info_launch" throws="1">
- <doc xml:space="preserve">Launches the application. Passes @files to the launched application
- as arguments, using the optional @launch_context to get information
- about the details of the launcher (like what screen it is on).
- On error, @error will be set accordingly.
- To launch the application without arguments pass a %NULL @files list.
- Note that even if the launch is successful the application launched
- can fail to start if it runs into problems during startup. There is
- no way to detect this.
- Some URIs can be changed when passed through a GFile (for instance
- unsupported URIs with strange formats like mailto:), so if you have
- a textual URI you want to pass in as argument, consider using
- g_app_info_launch_uris() instead.
- The launched application inherits the environment of the launching
- process, but it can be modified with g_app_launch_context_setenv()
- and g_app_launch_context_unsetenv().
- On UNIX, this function sets the `GIO_LAUNCHED_DESKTOP_FILE`
- environment variable with the path of the launched desktop file and
- `GIO_LAUNCHED_DESKTOP_FILE_PID` to the process id of the launched
- process. This can be used to ignore `GIO_LAUNCHED_DESKTOP_FILE`,
- should it be inherited by further processes. The `DISPLAY` and
- `DESKTOP_STARTUP_ID` environment variables are also set, based
- on information provided in @launch_context.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="files"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GList of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext or %NULL</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </method>
- <method name="launch_uris"
- c:identifier="g_app_info_launch_uris"
- throws="1">
- <doc xml:space="preserve">Launches the application. This passes the @uris to the launched application
- as arguments, using the optional @launch_context to get information
- about the details of the launcher (like what screen it is on).
- On error, @error will be set accordingly.
- To launch the application without arguments pass a %NULL @uris list.
- Note that even if the launch is successful the application launched
- can fail to start if it runs into problems during startup. There is
- no way to detect this.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="uris"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GList containing URIs to launch.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext or %NULL</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_supports_type"
- c:identifier="g_app_info_remove_supports_type"
- throws="1">
- <doc xml:space="preserve">Removes a supported type from an application, if possible.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_as_default_for_extension"
- c:identifier="g_app_info_set_as_default_for_extension"
- throws="1">
- <doc xml:space="preserve">Sets the application as the default handler for the given file extension.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file extension (without the dot).</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_as_default_for_type"
- c:identifier="g_app_info_set_as_default_for_type"
- throws="1">
- <doc xml:space="preserve">Sets the application as the default handler for a given type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_as_last_used_for_type"
- c:identifier="g_app_info_set_as_last_used_for_type"
- throws="1">
- <doc xml:space="preserve">Sets the application as the last used application for a given type.
- This will make the application appear as first in the list returned
- by g_app_info_get_recommended_for_type(), regardless of the default
- application for that content type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="should_show" c:identifier="g_app_info_should_show">
- <doc xml:space="preserve">Checks if the application info should be shown in menus that
- list available applications.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo should be shown, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="supports_files" c:identifier="g_app_info_supports_files">
- <doc xml:space="preserve">Checks if the application accepts files as arguments.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo supports files.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="supports_uris" c:identifier="g_app_info_supports_uris">
- <doc xml:space="preserve">Checks if the application supports reading files and directories from URIs.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo supports URIs.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <bitfield name="AppInfoCreateFlags"
- glib:type-name="GAppInfoCreateFlags"
- glib:get-type="g_app_info_create_flags_get_type"
- c:type="GAppInfoCreateFlags">
- <doc xml:space="preserve">Flags used when creating a #GAppInfo.</doc>
- <member name="none"
- value="0"
- c:identifier="G_APP_INFO_CREATE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags.</doc>
- </member>
- <member name="needs_terminal"
- value="1"
- c:identifier="G_APP_INFO_CREATE_NEEDS_TERMINAL"
- glib:nick="needs-terminal">
- <doc xml:space="preserve">Application opens in a terminal window.</doc>
- </member>
- <member name="supports_uris"
- value="2"
- c:identifier="G_APP_INFO_CREATE_SUPPORTS_URIS"
- glib:nick="supports-uris">
- <doc xml:space="preserve">Application supports URI arguments.</doc>
- </member>
- <member name="supports_startup_notification"
- value="4"
- c:identifier="G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION"
- glib:nick="supports-startup-notification">
- <doc xml:space="preserve">Application supports startup notification. Since 2.26</doc>
- </member>
- </bitfield>
- <record name="AppInfoIface"
- c:type="GAppInfoIface"
- glib:is-gtype-struct-for="AppInfo">
- <doc xml:space="preserve">Application Information interface, for operating system portability.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="dup">
- <callback name="dup">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a duplicate of @appinfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="equal">
- <callback name="equal">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="appinfo2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_id">
- <callback name="get_id">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the application's ID.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_name">
- <callback name="get_name">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the application for @appinfo.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_description">
- <callback name="get_description">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing a description of the
- application @appinfo, or %NULL if none.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_executable">
- <callback name="get_executable">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the @appinfo's application
- binaries name</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_icon">
- <callback name="get_icon">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default #GIcon for @appinfo or %NULL
- if there is no default icon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="launch">
- <callback name="launch" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GList of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext or %NULL</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="supports_uris">
- <callback name="supports_uris">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo supports URIs.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="supports_files">
- <callback name="supports_files">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo supports files.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="launch_uris">
- <callback name="launch_uris" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="uris"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GList containing URIs to launch.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext or %NULL</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="should_show">
- <callback name="should_show">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @appinfo should be shown, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_as_default_for_type">
- <callback name="set_as_default_for_type" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_as_default_for_extension">
- <callback name="set_as_default_for_extension" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file extension (without the dot).</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_supports_type">
- <callback name="add_supports_type" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_remove_supports_type">
- <callback name="can_remove_supports_type">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is possible to remove supported
- content types from a given @appinfo, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="remove_supports_type">
- <callback name="remove_supports_type" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_delete">
- <callback name="can_delete">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo can be deleted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="do_delete">
- <callback name="do_delete">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @appinfo has been deleted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_commandline">
- <callback name="get_commandline">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the @appinfo's commandline,
- or %NULL if this information is not available</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_display_name">
- <callback name="get_display_name">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the display name of the application for @appinfo, or the name if
- no display name is available.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_as_last_used_for_type">
- <callback name="set_as_last_used_for_type" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_supported_types">
- <callback name="get_supported_types">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">
- a list of content types.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo that can handle files</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="AppInfoMonitor"
- c:symbol-prefix="app_info_monitor"
- c:type="GAppInfoMonitor"
- version="2.40"
- parent="GObject.Object"
- glib:type-name="GAppInfoMonitor"
- glib:get-type="g_app_info_monitor_get_type">
- <doc xml:space="preserve">#GAppInfoMonitor is a very simple object used for monitoring the app
- info database for changes (ie: newly installed or removed
- applications).
- Call g_app_info_monitor_get() to get a #GAppInfoMonitor and connect
- to the "changed" signal.
- In the usual case, applications should try to make note of the change
- (doing things like invalidating caches) but not act on it. In
- particular, applications should avoid making calls to #GAppInfo APIs
- in response to the change signal, deferring these until the time that
- the data is actually required. The exception to this case is when
- application information is actually being displayed on the screen
- (eg: during a search or when the list of all applications is shown).
- The reason for this is that changes to the list of installed
- applications often come in groups (like during system updates) and
- rescanning the list on every change is pointless and expensive.</doc>
- <function name="get"
- c:identifier="g_app_info_monitor_get"
- version="2.40">
- <doc xml:space="preserve">Gets the #GAppInfoMonitor for the current thread-default main
- context.
- The #GAppInfoMonitor will emit a "changed" signal in the
- thread-default main context whenever the list of installed
- applications (as reported by g_app_info_get_all()) may have changed.
- You must only call g_object_unref() on the return value from under
- the same main context as you created it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a reference to a #GAppInfoMonitor</doc>
- <type name="AppInfoMonitor" c:type="GAppInfoMonitor*"/>
- </return-value>
- </function>
- <glib:signal name="changed" when="first">
- <doc xml:space="preserve">Signal emitted when the app info database for changes (ie: newly installed
- or removed applications).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <class name="AppLaunchContext"
- c:symbol-prefix="app_launch_context"
- c:type="GAppLaunchContext"
- parent="GObject.Object"
- glib:type-name="GAppLaunchContext"
- glib:get-type="g_app_launch_context_get_type"
- glib:type-struct="AppLaunchContextClass">
- <doc xml:space="preserve">Integrating the launch with the launching application. This is used to
- handle for instance startup notification and launching the new application
- on the same screen as the launching window.</doc>
- <constructor name="new" c:identifier="g_app_launch_context_new">
- <doc xml:space="preserve">Creates a new application launch context. This is not normally used,
- instead you instantiate a subclass of this, such as #GdkAppLaunchContext.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GAppLaunchContext.</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </return-value>
- </constructor>
- <virtual-method name="get_display" invoker="get_display">
- <doc xml:space="preserve">Gets the display string for the @context. This is used to ensure new
- applications are started on the same display as the launching
- application, by setting the `DISPLAY` environment variable.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a display string for the display.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_startup_notify_id"
- invoker="get_startup_notify_id">
- <doc xml:space="preserve">Initiates startup notification for the application and returns the
- `DESKTOP_STARTUP_ID` for the launched operation, if supported.
- Startup notification IDs are defined in the
- [FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt").</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a startup notification ID for the application, or %NULL if
- not supported.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="launch_failed" invoker="launch_failed">
- <doc xml:space="preserve">Called when an application has failed to launch, so that it can cancel
- the application startup notification started in g_app_launch_context_get_startup_notify_id().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext.</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="startup_notify_id" transfer-ownership="none">
- <doc xml:space="preserve">the startup notification id that was returned by g_app_launch_context_get_startup_notify_id().</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="launched">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_display"
- c:identifier="g_app_launch_context_get_display">
- <doc xml:space="preserve">Gets the display string for the @context. This is used to ensure new
- applications are started on the same display as the launching
- application, by setting the `DISPLAY` environment variable.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a display string for the display.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="get_environment"
- c:identifier="g_app_launch_context_get_environment"
- version="2.32">
- <doc xml:space="preserve">Gets the complete environment variable list to be passed to
- the child process when @context is used to launch an application.
- This is a %NULL-terminated array of strings, where each string has
- the form `KEY=VALUE`.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the
- child's environment</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_startup_notify_id"
- c:identifier="g_app_launch_context_get_startup_notify_id">
- <doc xml:space="preserve">Initiates startup notification for the application and returns the
- `DESKTOP_STARTUP_ID` for the launched operation, if supported.
- Startup notification IDs are defined in the
- [FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt").</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a startup notification ID for the application, or %NULL if
- not supported.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="launch_failed"
- c:identifier="g_app_launch_context_launch_failed">
- <doc xml:space="preserve">Called when an application has failed to launch, so that it can cancel
- the application startup notification started in g_app_launch_context_get_startup_notify_id().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext.</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="startup_notify_id" transfer-ownership="none">
- <doc xml:space="preserve">the startup notification id that was returned by g_app_launch_context_get_startup_notify_id().</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="setenv"
- c:identifier="g_app_launch_context_setenv"
- version="2.32">
- <doc xml:space="preserve">Arranges for @variable to be set to @value in the child's
- environment when @context is used to launch an application.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="variable" transfer-ownership="none">
- <doc xml:space="preserve">the environment variable to set</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value for to set the variable to.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unsetenv"
- c:identifier="g_app_launch_context_unsetenv"
- version="2.32">
- <doc xml:space="preserve">Arranges for @variable to be unset in the child's environment
- when @context is used to launch an application.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </instance-parameter>
- <parameter name="variable" transfer-ownership="none">
- <doc xml:space="preserve">the environment variable to remove</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="AppLaunchContextPrivate"
- c:type="GAppLaunchContextPrivate*"/>
- </field>
- <glib:signal name="launch-failed" when="last" version="2.36">
- <doc xml:space="preserve">The ::launch-failed signal is emitted when a #GAppInfo launch
- fails. The startup notification id is provided, so that the launcher
- can cancel the startup notification.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="startup_notify_id" transfer-ownership="none">
- <doc xml:space="preserve">the startup notification id for the failed launch</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="launched" when="last" version="2.36">
- <doc xml:space="preserve">The ::launched signal is emitted when a #GAppInfo is successfully
- launched. The @platform_data is an GVariant dictionary mapping
- strings to variants (ie a{sv}), which contains additional,
- platform-specific data about this launch. On UNIX, at least the
- "pid" and "startup-notification-id" keys will be present.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">the #GAppInfo that was just launched</doc>
- <type name="AppInfo"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">additional platform-specific data for this launch</doc>
- <type name="GLib.Variant"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="AppLaunchContextClass"
- c:type="GAppLaunchContextClass"
- glib:is-gtype-struct-for="AppLaunchContext">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_display">
- <callback name="get_display">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a display string for the display.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_startup_notify_id">
- <callback name="get_startup_notify_id">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a startup notification ID for the application, or %NULL if
- not supported.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppInfo</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of of #GFile objects</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="File"/>
- </type>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="launch_failed">
- <callback name="launch_failed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="context" transfer-ownership="none">
- <doc xml:space="preserve">a #GAppLaunchContext.</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- <parameter name="startup_notify_id" transfer-ownership="none">
- <doc xml:space="preserve">the startup notification id that was returned by g_app_launch_context_get_startup_notify_id().</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="launched">
- <callback name="launched">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="context" transfer-ownership="none">
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="AppInfo" c:type="GAppInfo*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="AppLaunchContextPrivate"
- c:type="GAppLaunchContextPrivate"
- disguised="1">
- </record>
- <class name="Application"
- c:symbol-prefix="application"
- c:type="GApplication"
- version="2.28"
- parent="GObject.Object"
- glib:type-name="GApplication"
- glib:get-type="g_application_get_type"
- glib:type-struct="ApplicationClass">
- <doc xml:space="preserve">A #GApplication is the foundation of an application. It wraps some
- low-level platform-specific services and is intended to act as the
- foundation for higher-level application classes such as
- #GtkApplication or #MxApplication. In general, you should not use
- this class outside of a higher level framework.
- GApplication provides convenient life cycle management by maintaining
- a "use count" for the primary application instance. The use count can
- be changed using g_application_hold() and g_application_release(). If
- it drops to zero, the application exits. Higher-level classes such as
- #GtkApplication employ the use count to ensure that the application
- stays alive as long as it has any opened windows.
- Another feature that GApplication (optionally) provides is process
- uniqueness. Applications can make use of this functionality by
- providing a unique application ID. If given, only one application
- with this ID can be running at a time per session. The session
- concept is platform-dependent, but corresponds roughly to a graphical
- desktop login. When your application is launched again, its
- arguments are passed through platform communication to the already
- running program. The already running instance of the program is
- called the "primary instance"; for non-unique applications this is
- the always the current instance. On Linux, the D-Bus session bus
- is used for communication.
- The use of #GApplication differs from some other commonly-used
- uniqueness libraries (such as libunique) in important ways. The
- application is not expected to manually register itself and check
- if it is the primary instance. Instead, the main() function of a
- #GApplication should do very little more than instantiating the
- application instance, possibly connecting signal handlers, then
- calling g_application_run(). All checks for uniqueness are done
- internally. If the application is the primary instance then the
- startup signal is emitted and the mainloop runs. If the application
- is not the primary instance then a signal is sent to the primary
- instance and g_application_run() promptly returns. See the code
- examples below.
- If used, the expected form of an application identifier is very close
- to that of of a
- [DBus bus name](http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-interface).
- Examples include: "com.example.MyApp", "org.example.internal-apps.Calculator".
- For details on valid application identifiers, see g_application_id_is_valid().
- On Linux, the application identifier is claimed as a well-known bus name
- on the user's session bus. This means that the uniqueness of your
- application is scoped to the current session. It also means that your
- application may provide additional services (through registration of other
- object paths) at that bus name. The registration of these object paths
- should be done with the shared GDBus session bus. Note that due to the
- internal architecture of GDBus, method calls can be dispatched at any time
- (even if a main loop is not running). For this reason, you must ensure that
- any object paths that you wish to register are registered before #GApplication
- attempts to acquire the bus name of your application (which happens in
- g_application_register()). Unfortunately, this means that you cannot use
- g_application_get_is_remote() to decide if you want to register object paths.
- GApplication also implements the #GActionGroup and #GActionMap
- interfaces and lets you easily export actions by adding them with
- g_action_map_add_action(). When invoking an action by calling
- g_action_group_activate_action() on the application, it is always
- invoked in the primary instance. The actions are also exported on
- the session bus, and GIO provides the #GDBusActionGroup wrapper to
- conveniently access them remotely. GIO provides a #GDBusMenuModel wrapper
- for remote access to exported #GMenuModels.
- There is a number of different entry points into a GApplication:
- - via 'Activate' (i.e. just starting the application)
- - via 'Open' (i.e. opening some files)
- - by handling a command-line
- - via activating an action
- The #GApplication::startup signal lets you handle the application
- initialization for all of these in a single place.
- Regardless of which of these entry points is used to start the
- application, GApplication passes some "platform data from the
- launching instance to the primary instance, in the form of a
- #GVariant dictionary mapping strings to variants. To use platform
- data, override the @before_emit or @after_emit virtual functions
- in your #GApplication subclass. When dealing with
- #GApplicationCommandLine objects, the platform data is
- directly available via g_application_command_line_get_cwd(),
- g_application_command_line_get_environ() and
- g_application_command_line_get_platform_data().
- As the name indicates, the platform data may vary depending on the
- operating system, but it always includes the current directory (key
- "cwd"), and optionally the environment (ie the set of environment
- variables and their values) of the calling process (key "environ").
- The environment is only added to the platform data if the
- %G_APPLICATION_SEND_ENVIRONMENT flag is set. #GApplication subclasses
- can add their own platform data by overriding the @add_platform_data
- virtual function. For instance, #GtkApplication adds startup notification
- data in this way.
- To parse commandline arguments you may handle the
- #GApplication::command-line signal or override the local_command_line()
- vfunc, to parse them in either the primary instance or the local instance,
- respectively.
- For an example of opening files with a GApplication, see
- [gapplication-example-open.c](https://git.gnome.org/browse/glib/tree/gio/tests/gapplication-example-open.c).
- For an example of using actions with GApplication, see
- [gapplication-example-actions.c](https://git.gnome.org/browse/glib/tree/gio/tests/gapplication-example-actions.c).
- For an example of using extra D-Bus hooks with GApplication, see
- [gapplication-example-dbushooks.c](https://git.gnome.org/browse/glib/tree/gio/tests/gapplication-example-dbushooks.c).</doc>
- <implements name="ActionGroup"/>
- <implements name="ActionMap"/>
- <constructor name="new" c:identifier="g_application_new">
- <doc xml:space="preserve">Creates a new #GApplication instance.
- If non-%NULL, the application id must be valid. See
- g_application_id_is_valid().
- If no application ID is given then some features of #GApplication
- (most notably application uniqueness) will be disabled.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GApplication instance</doc>
- <type name="Application" c:type="GApplication*"/>
- </return-value>
- <parameters>
- <parameter name="application_id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the application id</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the application flags</doc>
- <type name="ApplicationFlags" c:type="GApplicationFlags"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="get_default"
- c:identifier="g_application_get_default"
- version="2.32">
- <doc xml:space="preserve">Returns the default #GApplication instance for this process.
- Normally there is only one #GApplication per process and it becomes
- the default when it is created. You can exercise more control over
- this by using g_application_set_default().
- If there is no default application then %NULL is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default application for this process, or %NULL</doc>
- <type name="Application" c:type="GApplication*"/>
- </return-value>
- </function>
- <function name="id_is_valid" c:identifier="g_application_id_is_valid">
- <doc xml:space="preserve">Checks if @application_id is a valid application identifier.
- A valid ID is required for calls to g_application_new() and
- g_application_set_application_id().
- For convenience, the restrictions on application identifiers are
- reproduced here:
- - Application identifiers must contain only the ASCII characters
- "[A-Z][a-z][0-9]_-." and must not begin with a digit.
- - Application identifiers must contain at least one '.' (period)
- character (and thus at least three elements).
- - Application identifiers must not begin or end with a '.' (period)
- character.
- - Application identifiers must not contain consecutive '.' (period)
- characters.
- - Application identifiers must not exceed 255 characters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @application_id is valid</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="application_id" transfer-ownership="none">
- <doc xml:space="preserve">a potential application identifier</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="activate" invoker="activate" version="2.28">
- <doc xml:space="preserve">Activates the application.
- In essence, this results in the #GApplication::activate signal being
- emitted in the primary instance.
- The application must be registered before calling this function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="add_platform_data">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="builder" transfer-ownership="none">
- <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="after_emit">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="before_emit">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="command_line">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="command_line" transfer-ownership="none">
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="dbus_register" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="dbus_unregister">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handle_local_options">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="options" transfer-ownership="none">
- <type name="GLib.VariantDict" c:type="GVariantDict*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="local_command_line">
- <doc xml:space="preserve">This virtual function is always invoked in the local instance. It
- gets passed a pointer to a %NULL-terminated copy of @argv and is
- expected to remove arguments that it handled (shifting up remaining
- arguments).
- The last argument to local_command_line() is a pointer to the @status
- variable which can used to set the exit status that is returned from
- g_application_run().
- See g_application_run() for more details on #GApplication startup.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the commandline has been completely handled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="arguments"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">array of command line arguments</doc>
- <array c:type="gchar***">
- <type name="utf8" c:type="gchar**"/>
- </array>
- </parameter>
- <parameter name="exit_status"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">exit status to fill after processing the command line.</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="open" invoker="open" version="2.28">
- <doc xml:space="preserve">Opens the given files.
- In essence, this results in the #GApplication::open signal being emitted
- in the primary instance.
- @n_files must be greater than zero.
- @hint is simply passed through to the ::open signal. It is
- intended to be used by applications that have multiple modes for
- opening files (eg: "view" vs "edit", etc). Unless you have a need
- for this functionality, you should use "".
- The application must be registered before calling this function
- and it must have the %G_APPLICATION_HANDLES_OPEN flag set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GFiles to open</doc>
- <array length="1" zero-terminated="0" c:type="GFile**">
- <type name="File" c:type="GFile*"/>
- </array>
- </parameter>
- <parameter name="n_files" transfer-ownership="none">
- <doc xml:space="preserve">the length of the @files array</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="hint" transfer-ownership="none">
- <doc xml:space="preserve">a hint (or ""), but never %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="quit_mainloop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="run_mainloop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="shutdown">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="startup">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="activate"
- c:identifier="g_application_activate"
- version="2.28">
- <doc xml:space="preserve">Activates the application.
- In essence, this results in the #GApplication::activate signal being
- emitted in the primary instance.
- The application must be registered before calling this function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="add_main_option"
- c:identifier="g_application_add_main_option"
- version="2.42">
- <doc xml:space="preserve">Add an option to be handled by @application.
- Calling this function is the equivalent of calling
- g_application_add_main_option_entries() with a single #GOptionEntry
- that has its arg_data member set to %NULL.
- The parsed arguments will be packed into a #GVariantDict which
- is passed to #GApplication::handle-local-options. If
- %G_APPLICATION_HANDLES_COMMAND_LINE is set, then it will also
- be sent to the primary instance. See
- g_application_add_main_option_entries() for more details.
- See #GOptionEntry for more documentation of the arguments.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">the #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="long_name" transfer-ownership="none">
- <doc xml:space="preserve">the long name of an option used to specify it in a commandline</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="short_name" transfer-ownership="none">
- <doc xml:space="preserve">the short name of an option</doc>
- <type name="gchar" c:type="char"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags from #GOptionFlags</doc>
- <type name="GLib.OptionFlags" c:type="GOptionFlags"/>
- </parameter>
- <parameter name="arg" transfer-ownership="none">
- <doc xml:space="preserve">the type of the option, as a #GOptionArg</doc>
- <type name="GLib.OptionArg" c:type="GOptionArg"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">the description for the option in `--help` output</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="arg_description"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the placeholder to use for the extra argument
- parsed by the option in `--help` output</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_main_option_entries"
- c:identifier="g_application_add_main_option_entries"
- version="2.40">
- <doc xml:space="preserve">Adds main option entries to be handled by @application.
- This function is comparable to g_option_context_add_main_entries().
- After the commandline arguments are parsed, the
- #GApplication::handle-local-options signal will be emitted. At this
- point, the application can inspect the values pointed to by @arg_data
- in the given #GOptionEntrys.
- Unlike #GOptionContext, #GApplication supports giving a %NULL
- @arg_data for a non-callback #GOptionEntry. This results in the
- argument in question being packed into a #GVariantDict which is also
- passed to #GApplication::handle-local-options, where it can be
- inspected and modified. If %G_APPLICATION_HANDLES_COMMAND_LINE is
- set, then the resulting dictionary is sent to the primary instance,
- where g_application_command_line_get_options_dict() will return it.
- This "packing" is done according to the type of the argument --
- booleans for normal flags, strings for strings, bytestrings for
- filenames, etc. The packing only occurs if the flag is given (ie: we
- do not pack a "false" #GVariant in the case that a flag is missing).
- In general, it is recommended that all commandline arguments are
- parsed locally. The options dictionary should then be used to
- transmit the result of the parsing to the primary instance, where
- g_variant_dict_lookup() can be used. For local options, it is
- possible to either use @arg_data in the usual way, or to consult (and
- potentially remove) the option from the options dictionary.
- This function is new in GLib 2.40. Before then, the only real choice
- was to send all of the commandline arguments (options and all) to the
- primary instance for handling. #GApplication ignored them completely
- on the local side. Calling this function "opts in" to the new
- behaviour, and in particular, means that unrecognised options will be
- treated as errors. Unrecognised options have never been ignored when
- %G_APPLICATION_HANDLES_COMMAND_LINE is unset.
- If #GApplication::handle-local-options needs to see the list of
- filenames, then the use of %G_OPTION_REMAINING is recommended. If
- @arg_data is %NULL then %G_OPTION_REMAINING can be used as a key into
- the options dictionary. If you do use %G_OPTION_REMAINING then you
- need to handle these arguments for yourself because once they are
- consumed, they will no longer be visible to the default handling
- (which treats them as filenames to be opened).
- It is important to use the proper GVariant format when retrieving
- the options with g_variant_dict_lookup():
- - for %G_OPTION_ARG_NONE, use b
- - for %G_OPTION_ARG_STRING, use &s
- - for %G_OPTION_ARG_INT, use i
- - for %G_OPTION_ARG_INT64, use x
- - for %G_OPTION_ARG_DOUBLE, use d
- - for %G_OPTION_ARG_FILENAME, use ^ay
- - for %G_OPTION_ARG_STRING_ARRAY, use &as
- - for %G_OPTION_ARG_FILENAME_ARRAY, use ^aay</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="entries" transfer-ownership="none">
- <doc xml:space="preserve">a
- %NULL-terminated list of #GOptionEntrys</doc>
- <array c:type="GOptionEntry*">
- <type name="GLib.OptionEntry"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="add_option_group"
- c:identifier="g_application_add_option_group"
- version="2.40">
- <doc xml:space="preserve">Adds a #GOptionGroup to the commandline handling of @application.
- This function is comparable to g_option_context_add_group().
- Unlike g_application_add_main_option_entries(), this function does
- not deal with %NULL @arg_data and never transmits options to the
- primary instance.
- The reason for that is because, by the time the options arrive at the
- primary instance, it is typically too late to do anything with them.
- Taking the GTK option group as an example: GTK will already have been
- initialised by the time the #GApplication::command-line handler runs.
- In the case that this is not the first-running instance of the
- application, the existing instance may already have been running for
- a very long time.
- This means that the options from #GOptionGroup are only really usable
- in the case that the instance of the application being run is the
- first instance. Passing options like `--display=` or `--gdk-debug=`
- on future runs will have no effect on the existing primary instance.
- Calling this function will cause the options in the supplied option
- group to be parsed, but it does not cause you to be "opted in" to the
- new functionality whereby unrecognised options are rejected even if
- %G_APPLICATION_HANDLES_COMMAND_LINE was given.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">the #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="group" transfer-ownership="full">
- <doc xml:space="preserve">a #GOptionGroup</doc>
- <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
- </parameter>
- </parameters>
- </method>
- <method name="bind_busy_property"
- c:identifier="g_application_bind_busy_property"
- version="2.44">
- <doc xml:space="preserve">Marks @application as busy (see g_application_mark_busy()) while
- @property on @object is %TRUE.
- The binding holds a reference to @application while it is active, but
- not to @object. Instead, the binding is destroyed when @object is
- finalized.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property" transfer-ownership="none">
- <doc xml:space="preserve">the name of a boolean property of @object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_application_id"
- c:identifier="g_application_get_application_id"
- version="2.28">
- <doc xml:space="preserve">Gets the unique identifier for @application.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the identifier for @application, owned by @application</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_dbus_connection"
- c:identifier="g_application_get_dbus_connection"
- version="2.34">
- <doc xml:space="preserve">Gets the #GDBusConnection being used by the application, or %NULL.
- If #GApplication is using its D-Bus backend then this function will
- return the #GDBusConnection being used for uniqueness and
- communication with the desktop environment and other instances of the
- application.
- If #GApplication is not using D-Bus then this function will return
- %NULL. This includes the situation where the D-Bus backend would
- normally be in use but we were unable to connect to the bus.
- This function must not be called before the application has been
- registered. See g_application_get_is_registered().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection, or %NULL</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_dbus_object_path"
- c:identifier="g_application_get_dbus_object_path"
- version="2.34">
- <doc xml:space="preserve">Gets the D-Bus object path being used by the application, or %NULL.
- If #GApplication is using its D-Bus backend then this function will
- return the D-Bus object path that #GApplication is using. If the
- application is the primary instance then there is an object published
- at this path. If the application is not the primary instance then
- the result of this function is undefined.
- If #GApplication is not using D-Bus then this function will return
- %NULL. This includes the situation where the D-Bus backend would
- normally be in use but we were unable to connect to the bus.
- This function must not be called before the application has been
- registered. See g_application_get_is_registered().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the object path, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_application_get_flags"
- version="2.28">
- <doc xml:space="preserve">Gets the flags for @application.
- See #GApplicationFlags.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the flags for @application</doc>
- <type name="ApplicationFlags" c:type="GApplicationFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_inactivity_timeout"
- c:identifier="g_application_get_inactivity_timeout"
- version="2.28">
- <doc xml:space="preserve">Gets the current inactivity timeout for the application.
- This is the amount of time (in milliseconds) after the last call to
- g_application_release() before the application stops running.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the timeout, in milliseconds</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_busy"
- c:identifier="g_application_get_is_busy"
- version="2.44">
- <doc xml:space="preserve">Gets the application's current busy state, as set through
- g_application_mark_busy() or g_application_bind_busy_property().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @application is currenty marked as busy</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_registered"
- c:identifier="g_application_get_is_registered"
- version="2.28">
- <doc xml:space="preserve">Checks if @application is registered.
- An application is registered if g_application_register() has been
- successfully called.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @application is registered</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_remote"
- c:identifier="g_application_get_is_remote"
- version="2.28">
- <doc xml:space="preserve">Checks if @application is remote.
- If @application is remote then it means that another instance of
- application already exists (the 'primary' instance). Calls to
- perform actions on @application will result in the actions being
- performed by the primary instance.
- The value of this property cannot be accessed before
- g_application_register() has been called. See
- g_application_get_is_registered().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @application is remote</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_resource_base_path"
- c:identifier="g_application_get_resource_base_path"
- version="2.42">
- <doc xml:space="preserve">Gets the resource base path of @application.
- See g_application_set_resource_base_path() for more information.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the base resource path, if one is set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="hold" c:identifier="g_application_hold">
- <doc xml:space="preserve">Increases the use count of @application.
- Use this function to indicate that the application has a reason to
- continue to run. For example, g_application_hold() is called by GTK+
- when a toplevel window is on the screen.
- To cancel the hold, call g_application_release().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="mark_busy"
- c:identifier="g_application_mark_busy"
- version="2.38">
- <doc xml:space="preserve">Increases the busy count of @application.
- Use this function to indicate that the application is busy, for instance
- while a long running operation is pending.
- The busy state will be exposed to other processes, so a session shell will
- use that information to indicate the state to the user (e.g. with a
- spinner).
- To cancel the busy indication, use g_application_unmark_busy().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="open" c:identifier="g_application_open" version="2.28">
- <doc xml:space="preserve">Opens the given files.
- In essence, this results in the #GApplication::open signal being emitted
- in the primary instance.
- @n_files must be greater than zero.
- @hint is simply passed through to the ::open signal. It is
- intended to be used by applications that have multiple modes for
- opening files (eg: "view" vs "edit", etc). Unless you have a need
- for this functionality, you should use "".
- The application must be registered before calling this function
- and it must have the %G_APPLICATION_HANDLES_OPEN flag set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GFiles to open</doc>
- <array length="1" zero-terminated="0" c:type="GFile**">
- <type name="File" c:type="GFile*"/>
- </array>
- </parameter>
- <parameter name="n_files" transfer-ownership="none">
- <doc xml:space="preserve">the length of the @files array</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="hint" transfer-ownership="none">
- <doc xml:space="preserve">a hint (or ""), but never %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="quit" c:identifier="g_application_quit" version="2.32">
- <doc xml:space="preserve">Immediately quits the application.
- Upon return to the mainloop, g_application_run() will return,
- calling only the 'shutdown' function before doing so.
- The hold count is ignored.
- The result of calling g_application_run() again after it returns is
- unspecified.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="register"
- c:identifier="g_application_register"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Attempts registration of the application.
- This is the point at which the application discovers if it is the
- primary instance or merely acting as a remote for an already-existing
- primary instance. This is implemented by attempting to acquire the
- application identifier as a unique bus name on the session bus using
- GDBus.
- If there is no application ID or if %G_APPLICATION_NON_UNIQUE was
- given, then this process will always become the primary instance.
- Due to the internal architecture of GDBus, method calls can be
- dispatched at any time (even if a main loop is not running). For
- this reason, you must ensure that any object paths that you wish to
- register are registered before calling this function.
- If the application has already been registered then %TRUE is
- returned with no work performed.
- The #GApplication::startup signal is emitted if registration succeeds
- and @application is the primary instance (including the non-unique
- case).
- In the event of an error (such as @cancellable being cancelled, or a
- failure to connect to the session bus), %FALSE is returned and @error
- is set appropriately.
- Note: the return value of this function is not an indicator that this
- instance is or is not the primary instance of the application. See
- g_application_get_is_remote() for that.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if registration succeeded</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="release" c:identifier="g_application_release">
- <doc xml:space="preserve">Decrease the use count of @application.
- When the use count reaches zero, the application will stop running.
- Never call this function except to cancel the effect of a previous
- call to g_application_hold().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="run" c:identifier="g_application_run" version="2.28">
- <doc xml:space="preserve">Runs the application.
- This function is intended to be run from main() and its return value
- is intended to be returned by main(). Although you are expected to pass
- the @argc, @argv parameters from main() to this function, it is possible
- to pass %NULL if @argv is not available or commandline handling is not
- required. Note that on Windows, @argc and @argv are ignored, and
- g_win32_get_command_line() is called internally (for proper support
- of Unicode commandline arguments).
- #GApplication will attempt to parse the commandline arguments. You
- can add commandline flags to the list of recognised options by way of
- g_application_add_main_option_entries(). After this, the
- #GApplication::handle-local-options signal is emitted, from which the
- application can inspect the values of its #GOptionEntrys.
- #GApplication::handle-local-options is a good place to handle options
- such as `--version`, where an immediate reply from the local process is
- desired (instead of communicating with an already-running instance).
- A #GApplication::handle-local-options handler can stop further processing
- by returning a non-negative value, which then becomes the exit status of
- the process.
- What happens next depends on the flags: if
- %G_APPLICATION_HANDLES_COMMAND_LINE was specified then the remaining
- commandline arguments are sent to the primary instance, where a
- #GApplication::command-line signal is emitted. Otherwise, the
- remaining commandline arguments are assumed to be a list of files.
- If there are no files listed, the application is activated via the
- #GApplication::activate signal. If there are one or more files, and
- %G_APPLICATION_HANDLES_OPEN was specified then the files are opened
- via the #GApplication::open signal.
- If you are interested in doing more complicated local handling of the
- commandline then you should implement your own #GApplication subclass
- and override local_command_line(). In this case, you most likely want
- to return %TRUE from your local_command_line() implementation to
- suppress the default handling. See
- [gapplication-example-cmdline2.c][gapplication-example-cmdline2]
- for an example.
- If, after the above is done, the use count of the application is zero
- then the exit status is returned immediately. If the use count is
- non-zero then the default main context is iterated until the use count
- falls to zero, at which point 0 is returned.
- If the %G_APPLICATION_IS_SERVICE flag is set, then the service will
- run for as much as 10 seconds with a use count of zero while waiting
- for the message that caused the activation to arrive. After that,
- if the use count falls to zero the application will exit immediately,
- except in the case that g_application_set_inactivity_timeout() is in
- use.
- This function sets the prgname (g_set_prgname()), if not already set,
- to the basename of argv[0].
- Much like g_main_loop_run(), this function will acquire the main context
- for the duration that the application is running.
- Since 2.40, applications that are not explicitly flagged as services
- or launchers (ie: neither %G_APPLICATION_IS_SERVICE or
- %G_APPLICATION_IS_LAUNCHER are given as flags) will check (from the
- default handler for local_command_line) if "--gapplication-service"
- was given in the command line. If this flag is present then normal
- commandline processing is interrupted and the
- %G_APPLICATION_IS_SERVICE flag is set. This provides a "compromise"
- solution whereby running an application directly from the commandline
- will invoke it in the normal way (which can be useful for debugging)
- while still allowing applications to be D-Bus activated in service
- mode. The D-Bus service file should invoke the executable with
- "--gapplication-service" as the sole commandline argument. This
- approach is suitable for use by most graphical applications but
- should not be used from applications like editors that need precise
- control over when processes invoked via the commandline will exit and
- what their exit status will be.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the exit status</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="argc" transfer-ownership="none">
- <doc xml:space="preserve">the argc from main() (or 0 if @argv is %NULL)</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="argv"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the argv from main(), or %NULL</doc>
- <array length="0" zero-terminated="0" c:type="char**">
- <type name="utf8" c:type="char*"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="send_notification"
- c:identifier="g_application_send_notification"
- version="2.40">
- <doc xml:space="preserve">Sends a notification on behalf of @application to the desktop shell.
- There is no guarantee that the notification is displayed immediately,
- or even at all.
- Notifications may persist after the application exits. It will be
- D-Bus-activated when the notification or one of its actions is
- activated.
- Modifying @notification after this call has no effect. However, the
- object can be reused for a later call to this function.
- @id may be any string that uniquely identifies the event for the
- application. It does not need to be in any special format. For
- example, "new-message" might be appropriate for a notification about
- new messages.
- If a previous notification was sent with the same @id, it will be
- replaced with @notification and shown again as if it was a new
- notification. This works even for notifications sent from a previous
- execution of the application, as long as @id is the same string.
- @id may be %NULL, but it is impossible to replace or withdraw
- notifications without an id.
- If @notification is no longer relevant, it can be withdrawn with
- g_application_withdraw_notification().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">id of the notification, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">the #GNotification to send</doc>
- <type name="Notification" c:type="GNotification*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_action_group"
- c:identifier="g_application_set_action_group"
- version="2.28"
- deprecated="1"
- deprecated-version="2.32">
- <doc xml:space="preserve">This used to be how actions were associated with a #GApplication.
- Now there is #GActionMap for that.</doc>
- <doc-deprecated xml:space="preserve">Use the #GActionMap interface instead. Never ever
- mix use of this API with use of #GActionMap on the same @application
- or things will go very badly wrong. This function is known to
- introduce buggy behaviour (ie: signals not emitted on changes to the
- action group), so you should really use #GActionMap instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="action_group"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GActionGroup, or %NULL</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_application_id"
- c:identifier="g_application_set_application_id"
- version="2.28">
- <doc xml:space="preserve">Sets the unique identifier for @application.
- The application id can only be modified if @application has not yet
- been registered.
- If non-%NULL, the application id must be valid. See
- g_application_id_is_valid().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="application_id"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the identifier for @application</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default"
- c:identifier="g_application_set_default"
- version="2.32">
- <doc xml:space="preserve">Sets or unsets the default application for the process, as returned
- by g_application_get_default().
- This function does not take its own reference on @application. If
- @application is destroyed then the default application will revert
- back to %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the application to set as default, or %NULL</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_flags"
- c:identifier="g_application_set_flags"
- version="2.28">
- <doc xml:space="preserve">Sets the flags for @application.
- The flags can only be modified if @application has not yet been
- registered.
- See #GApplicationFlags.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the flags for @application</doc>
- <type name="ApplicationFlags" c:type="GApplicationFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_inactivity_timeout"
- c:identifier="g_application_set_inactivity_timeout"
- version="2.28">
- <doc xml:space="preserve">Sets the current inactivity timeout for the application.
- This is the amount of time (in milliseconds) after the last call to
- g_application_release() before the application stops running.
- This call has no side effects of its own. The value set here is only
- used for next time g_application_release() drops the use count to
- zero. Any timeouts currently in progress are not impacted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="inactivity_timeout" transfer-ownership="none">
- <doc xml:space="preserve">the timeout, in milliseconds</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_resource_base_path"
- c:identifier="g_application_set_resource_base_path"
- version="2.42">
- <doc xml:space="preserve">Sets (or unsets) the base resource path of @application.
- The path is used to automatically load various [application
- resources][gresource] such as menu layouts and action descriptions.
- The various types of resources will be found at fixed names relative
- to the given base path.
- By default, the resource base path is determined from the application
- ID by prefixing '/' and replacing each '.' with '/'. This is done at
- the time that the #GApplication object is constructed. Changes to
- the application ID after that point will not have an impact on the
- resource base path.
- As an example, if the application has an ID of "org.example.app" then
- the default resource base path will be "/org/example/app". If this
- is a #GtkApplication (and you have not manually changed the path)
- then Gtk will then search for the menus of the application at
- "/org/example/app/gtk/menus.ui".
- See #GResource for more information about adding resources to your
- application.
- You can disable automatic resource loading functionality by setting
- the path to %NULL.
- Changing the resource base path once the application is running is
- not recommended. The point at which the resource path is consulted
- for forming paths for various purposes is unspecified. When writing
- a sub-class of #GApplication you should either set the
- #GApplication:resource-base-path property at construction time, or call
- this function during the instance initialization. Alternatively, you
- can call this function in the #GApplicationClass.startup virtual function,
- before chaining up to the parent implementation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="resource_path"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the resource path to use</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unbind_busy_property"
- c:identifier="g_application_unbind_busy_property"
- version="2.44">
- <doc xml:space="preserve">Destroys a binding between @property and the busy state of
- @application that was previously created with
- g_application_bind_busy_property().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property" transfer-ownership="none">
- <doc xml:space="preserve">the name of a boolean property of @object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmark_busy"
- c:identifier="g_application_unmark_busy"
- version="2.38">
- <doc xml:space="preserve">Decreases the busy count of @application.
- When the busy count reaches zero, the new state will be propagated
- to other processes.
- This function must only be called to cancel the effect of a previous
- call to g_application_mark_busy().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="withdraw_notification"
- c:identifier="g_application_withdraw_notification"
- version="2.40">
- <doc xml:space="preserve">Withdraws a notification that was sent with
- g_application_send_notification().
- This call does nothing if a notification with @id doesn't exist or
- the notification was never sent.
- This function works even for notifications sent in previous
- executions of this application, as long @id is the same as it was for
- the sent notification.
- Note that notifications are dismissed when the user clicks on one
- of the buttons in a notification or triggers its default action, so
- there is no need to explicitly withdraw the notification in that case.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </instance-parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">id of a previously sent notification</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="action-group"
- readable="0"
- writable="1"
- transfer-ownership="none">
- <type name="ActionGroup"/>
- </property>
- <property name="application-id"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="flags" writable="1" transfer-ownership="none">
- <type name="ApplicationFlags"/>
- </property>
- <property name="inactivity-timeout"
- writable="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <property name="is-busy" version="2.44" transfer-ownership="none">
- <doc xml:space="preserve">Whether the application is currently marked as busy through
- g_application_mark_busy() or g_application_bind_busy_property().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-registered" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-remote" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="resource-base-path"
- writable="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ApplicationPrivate" c:type="GApplicationPrivate*"/>
- </field>
- <glib:signal name="activate" when="last">
- <doc xml:space="preserve">The ::activate signal is emitted on the primary instance when an
- activation occurs. See g_application_activate().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="command-line" when="last">
- <doc xml:space="preserve">The ::command-line signal is emitted on the primary instance when
- a commandline is not handled locally. See g_application_run() and
- the #GApplicationCommandLine documentation for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An integer that is set as the exit status for the calling
- process. See g_application_command_line_set_exit_status().</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="command_line" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine representing the
- passed commandline</doc>
- <type name="ApplicationCommandLine"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="handle-local-options" when="last" version="2.40">
- <doc xml:space="preserve">The ::handle-local-options signal is emitted on the local instance
- after the parsing of the commandline options has occurred.
- You can add options to be recognised during commandline option
- parsing using g_application_add_main_option_entries() and
- g_application_add_option_group().
- Signal handlers can inspect @options (along with values pointed to
- from the @arg_data of an installed #GOptionEntrys) in order to
- decide to perform certain actions, including direct local handling
- (which may be useful for options like --version).
- In the event that the application is marked
- %G_APPLICATION_HANDLES_COMMAND_LINE the "normal processing" will
- send the @options dictionary to the primary instance where it can be
- read with g_application_command_line_get_options_dict(). The signal
- handler can modify the dictionary before returning, and the
- modified dictionary will be sent.
- In the event that %G_APPLICATION_HANDLES_COMMAND_LINE is not set,
- "normal processing" will treat the remaining uncollected command
- line arguments as filenames or URIs. If there are no arguments,
- the application is activated by g_application_activate(). One or
- more arguments results in a call to g_application_open().
- If you want to handle the local commandline arguments for yourself
- by converting them to calls to g_application_open() or
- g_action_group_activate_action() then you must be sure to register
- the application first. You should probably not call
- g_application_activate() for yourself, however: just return -1 and
- allow the default handler to do it for you. This will ensure that
- the `--gapplication-service` switch works properly (i.e. no activation
- in that case).
- Note that this signal is emitted from the default implementation of
- local_command_line(). If you override that function and don't
- chain up then this signal will never be emitted.
- You can override local_command_line() if you need more powerful
- capabilities than what is provided here, but this should not
- normally be required.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an exit code. If you have handled your options and want
- to exit the process, return a non-negative option, 0 for success,
- and a positive value for failure. To continue, return -1 to let
- the default option processing continue.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="options" transfer-ownership="none">
- <doc xml:space="preserve">the options dictionary</doc>
- <type name="GLib.VariantDict"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="open" when="last">
- <doc xml:space="preserve">The ::open signal is emitted on the primary instance when there are
- files to open. See g_application_open() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GFiles</doc>
- <array length="1" zero-terminated="0" c:type="gpointer">
- <type name="File"/>
- </array>
- </parameter>
- <parameter name="n_files" transfer-ownership="none">
- <doc xml:space="preserve">the length of @files</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="hint" transfer-ownership="none">
- <doc xml:space="preserve">a hint provided by the calling instance</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="shutdown" when="last">
- <doc xml:space="preserve">The ::shutdown signal is emitted only on the registered primary instance
- immediately after the main loop terminates.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="startup" when="first">
- <doc xml:space="preserve">The ::startup signal is emitted on the primary instance immediately
- after registration. See g_application_register().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <record name="ApplicationClass"
- c:type="GApplicationClass"
- glib:is-gtype-struct-for="Application"
- version="2.28">
- <doc xml:space="preserve">Virtual function table for #GApplication.</doc>
- <field name="parent_class" readable="0" private="1">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="startup">
- <callback name="startup">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="activate">
- <callback name="activate">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="open">
- <callback name="open">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="files" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GFiles to open</doc>
- <array length="2" zero-terminated="0" c:type="GFile**">
- <type name="File" c:type="GFile*"/>
- </array>
- </parameter>
- <parameter name="n_files" transfer-ownership="none">
- <doc xml:space="preserve">the length of the @files array</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="hint" transfer-ownership="none">
- <doc xml:space="preserve">a hint (or ""), but never %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="command_line">
- <callback name="command_line">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="command_line" transfer-ownership="none">
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="local_command_line">
- <callback name="local_command_line">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the commandline has been completely handled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplication</doc>
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="arguments"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">array of command line arguments</doc>
- <array c:type="gchar***">
- <type name="utf8" c:type="gchar**"/>
- </array>
- </parameter>
- <parameter name="exit_status"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">exit status to fill after processing the command line.</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="before_emit">
- <callback name="before_emit">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="after_emit">
- <callback name="after_emit">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_platform_data">
- <callback name="add_platform_data">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="builder" transfer-ownership="none">
- <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="quit_mainloop">
- <callback name="quit_mainloop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="run_mainloop">
- <callback name="run_mainloop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="shutdown">
- <callback name="shutdown">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="dbus_register">
- <callback name="dbus_register" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="dbus_unregister">
- <callback name="dbus_unregister">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handle_local_options">
- <callback name="handle_local_options">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="application" transfer-ownership="none">
- <type name="Application" c:type="GApplication*"/>
- </parameter>
- <parameter name="options" transfer-ownership="none">
- <type name="GLib.VariantDict" c:type="GVariantDict*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <class name="ApplicationCommandLine"
- c:symbol-prefix="application_command_line"
- c:type="GApplicationCommandLine"
- parent="GObject.Object"
- glib:type-name="GApplicationCommandLine"
- glib:get-type="g_application_command_line_get_type"
- glib:type-struct="ApplicationCommandLineClass">
- <doc xml:space="preserve">#GApplicationCommandLine represents a command-line invocation of
- an application. It is created by #GApplication and emitted
- in the #GApplication::command-line signal and virtual function.
- The class contains the list of arguments that the program was invoked
- with. It is also possible to query if the commandline invocation was
- local (ie: the current process is running in direct response to the
- invocation) or remote (ie: some other process forwarded the
- commandline to this process).
- The GApplicationCommandLine object can provide the @argc and @argv
- parameters for use with the #GOptionContext command-line parsing API,
- with the g_application_command_line_get_arguments() function. See
- [gapplication-example-cmdline3.c][gapplication-example-cmdline3]
- for an example.
- The exit status of the originally-invoked process may be set and
- messages can be printed to stdout or stderr of that process. The
- lifecycle of the originally-invoked process is tied to the lifecycle
- of this object (ie: the process exits when the last reference is
- dropped).
- The main use for #GApplicationCommandLine (and the
- #GApplication::command-line signal) is 'Emacs server' like use cases:
- You can set the `EDITOR` environment variable to have e.g. git use
- your favourite editor to edit commit messages, and if you already
- have an instance of the editor running, the editing will happen
- in the running instance, instead of opening a new one. An important
- aspect of this use case is that the process that gets started by git
- does not return until the editing is done.
- Normally, the commandline is completely handled in the
- #GApplication::command-line handler. The launching instance exits
- once the signal handler in the primary instance has returned, and
- the return value of the signal handler becomes the exit status
- of the launching instance.
- |[<!-- language="C" -->
- static int
- command_line (GApplication *application,
- GApplicationCommandLine *cmdline)
- {
- gchar **argv;
- gint argc;
- gint i;
- argv = g_application_command_line_get_arguments (cmdline, &argc);
- g_application_command_line_print (cmdline,
- "This text is written back\n"
- "to stdout of the caller\n");
- for (i = 0; i < argc; i++)
- g_print ("argument %d: %s\n", i, argv[i]);
- g_strfreev (argv);
- return 0;
- }
- ]|
- The complete example can be found here:
- [gapplication-example-cmdline.c](https://git.gnome.org/browse/glib/tree/gio/tests/gapplication-example-cmdline.c)
- In more complicated cases, the handling of the comandline can be
- split between the launcher and the primary instance.
- |[<!-- language="C" -->
- static gboolean
- test_local_cmdline (GApplication *application,
- gchar ***arguments,
- gint *exit_status)
- {
- gint i, j;
- gchar **argv;
- argv = *arguments;
- i = 1;
- while (argv[i])
- {
- if (g_str_has_prefix (argv[i], "--local-"))
- {
- g_print ("handling argument %s locally\n", argv[i]);
- g_free (argv[i]);
- for (j = i; argv[j]; j++)
- argv[j] = argv[j + 1];
- }
- else
- {
- g_print ("not handling argument %s locally\n", argv[i]);
- i++;
- }
- }
- *exit_status = 0;
- return FALSE;
- }
- static void
- test_application_class_init (TestApplicationClass *class)
- {
- G_APPLICATION_CLASS (class)->local_command_line = test_local_cmdline;
- ...
- }
- ]|
- In this example of split commandline handling, options that start
- with `--local-` are handled locally, all other options are passed
- to the #GApplication::command-line handler which runs in the primary
- instance.
- The complete example can be found here:
- [gapplication-example-cmdline2.c](https://git.gnome.org/browse/glib/tree/gio/tests/gapplication-example-cmdline2.c)
- If handling the commandline requires a lot of work, it may
- be better to defer it.
- |[<!-- language="C" -->
- static gboolean
- my_cmdline_handler (gpointer data)
- {
- GApplicationCommandLine *cmdline = data;
- // do the heavy lifting in an idle
- g_application_command_line_set_exit_status (cmdline, 0);
- g_object_unref (cmdline); // this releases the application
- return G_SOURCE_REMOVE;
- }
- static int
- command_line (GApplication *application,
- GApplicationCommandLine *cmdline)
- {
- // keep the application running until we are done with this commandline
- g_application_hold (application);
- g_object_set_data_full (G_OBJECT (cmdline),
- "application", application,
- (GDestroyNotify)g_application_release);
- g_object_ref (cmdline);
- g_idle_add (my_cmdline_handler, cmdline);
- return 0;
- }
- ]|
- In this example the commandline is not completely handled before
- the #GApplication::command-line handler returns. Instead, we keep
- a reference to the #GApplicationCommandLine object and handle it
- later (in this example, in an idle). Note that it is necessary to
- hold the application until you are done with the commandline.
- The complete example can be found here:
- [gapplication-example-cmdline3.c](https://git.gnome.org/browse/glib/tree/gio/tests/gapplication-example-cmdline3.c)</doc>
- <virtual-method name="get_stdin" invoker="get_stdin" version="2.34">
- <doc xml:space="preserve">Gets the stdin of the invoking process.
- The #GInputStream can be used to read data passed to the standard
- input of the invoking process.
- This doesn't work on all platforms. Presently, it is only available
- on UNIX when using a DBus daemon capable of passing file descriptors.
- If stdin is not available then %NULL will be returned. In the
- future, support may be expanded to other platforms.
- You must only call this function once per commandline invocation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream for stdin</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="print_literal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="printerr_literal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="create_file_for_arg"
- c:identifier="g_application_command_line_create_file_for_arg"
- version="2.36">
- <doc xml:space="preserve">Creates a #GFile corresponding to a filename that was given as part
- of the invocation of @cmdline.
- This differs from g_file_new_for_commandline_arg() in that it
- resolves relative pathnames using the current working directory of
- the invoking process rather than the local process.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="arg" transfer-ownership="none">
- <doc xml:space="preserve">an argument from @cmdline</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_arguments"
- c:identifier="g_application_command_line_get_arguments"
- version="2.28">
- <doc xml:space="preserve">Gets the list of arguments that was passed on the command line.
- The strings in the array may contain non-UTF-8 data on UNIX (such as
- filenames or arguments given in the system locale) but are always in
- UTF-8 on Windows.
- If you wish to use the return value with #GOptionContext, you must
- use g_option_context_parse_strv().
- The return value is %NULL-terminated and should be freed using
- g_strfreev().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the string array
- containing the arguments (the argv)</doc>
- <array length="0" zero-terminated="0" c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="argc"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the length of the arguments array, or %NULL</doc>
- <type name="gint" c:type="int*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_cwd"
- c:identifier="g_application_command_line_get_cwd"
- version="2.28">
- <doc xml:space="preserve">Gets the working directory of the command line invocation.
- The string may contain non-utf8 data.
- It is possible that the remote application did not send a working
- directory, so this may be %NULL.
- The return value should not be modified or freed and is valid for as
- long as @cmdline exists.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the current directory, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_environ"
- c:identifier="g_application_command_line_get_environ"
- version="2.28">
- <doc xml:space="preserve">Gets the contents of the 'environ' variable of the command line
- invocation, as would be returned by g_get_environ(), ie as a
- %NULL-terminated list of strings in the form 'NAME=VALUE'.
- The strings may contain non-utf8 data.
- The remote application usually does not send an environment. Use
- %G_APPLICATION_SEND_ENVIRONMENT to affect that. Even with this flag
- set it is possible that the environment is still not available (due
- to invocation messages from other applications).
- The return value should not be modified or freed and is valid for as
- long as @cmdline exists.
- See g_application_command_line_getenv() if you are only interested
- in the value of a single environment variable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the environment
- strings, or %NULL if they were not sent</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_exit_status"
- c:identifier="g_application_command_line_get_exit_status"
- version="2.28">
- <doc xml:space="preserve">Gets the exit status of @cmdline. See
- g_application_command_line_set_exit_status() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the exit status</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_remote"
- c:identifier="g_application_command_line_get_is_remote"
- version="2.28">
- <doc xml:space="preserve">Determines if @cmdline represents a remote invocation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the invocation was remote</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_options_dict"
- c:identifier="g_application_command_line_get_options_dict"
- version="2.40">
- <doc xml:space="preserve">Gets the options there were passed to g_application_command_line().
- If you did not override local_command_line() then these are the same
- options that were parsed according to the #GOptionEntrys added to the
- application with g_application_add_main_option_entries() and possibly
- modified from your GApplication::handle-local-options handler.
- If no options were sent then an empty dictionary is returned so that
- you don't need to check for %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GVariantDict with the options</doc>
- <type name="GLib.VariantDict" c:type="GVariantDict*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_platform_data"
- c:identifier="g_application_command_line_get_platform_data"
- version="2.28">
- <doc xml:space="preserve">Gets the platform data associated with the invocation of @cmdline.
- This is a #GVariant dictionary containing information about the
- context in which the invocation occurred. It typically contains
- information like the current working directory and the startup
- notification ID.
- For local invocation, it will be %NULL.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the platform data, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">#GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_stdin"
- c:identifier="g_application_command_line_get_stdin"
- version="2.34">
- <doc xml:space="preserve">Gets the stdin of the invoking process.
- The #GInputStream can be used to read data passed to the standard
- input of the invoking process.
- This doesn't work on all platforms. Presently, it is only available
- on UNIX when using a DBus daemon capable of passing file descriptors.
- If stdin is not available then %NULL will be returned. In the
- future, support may be expanded to other platforms.
- You must only call this function once per commandline invocation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream for stdin</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="getenv"
- c:identifier="g_application_command_line_getenv"
- version="2.28">
- <doc xml:space="preserve">Gets the value of a particular environment variable of the command
- line invocation, as would be returned by g_getenv(). The strings may
- contain non-utf8 data.
- The remote application usually does not send an environment. Use
- %G_APPLICATION_SEND_ENVIRONMENT to affect that. Even with this flag
- set it is possible that the environment is still not available (due
- to invocation messages from other applications).
- The return value should not be modified or freed and is valid for as
- long as @cmdline exists.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value of the variable, or %NULL if unset or unsent</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the environment variable to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="print"
- c:identifier="g_application_command_line_print"
- version="2.28"
- introspectable="0">
- <doc xml:space="preserve">Formats a message and prints it using the stdout print handler in the
- invoking process.
- If @cmdline is a local invocation then this is exactly equivalent to
- g_print(). If @cmdline is remote then this is equivalent to calling
- g_print() in the invoking process.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf-style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">arguments, as per @format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="printerr"
- c:identifier="g_application_command_line_printerr"
- version="2.28"
- introspectable="0">
- <doc xml:space="preserve">Formats a message and prints it using the stderr print handler in the
- invoking process.
- If @cmdline is a local invocation then this is exactly equivalent to
- g_printerr(). If @cmdline is remote then this is equivalent to
- calling g_printerr() in the invoking process.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a printf-style format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">arguments, as per @format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_exit_status"
- c:identifier="g_application_command_line_set_exit_status"
- version="2.28">
- <doc xml:space="preserve">Sets the exit status that will be used when the invoking process
- exits.
- The return value of the #GApplication::command-line signal is
- passed to this function when the handler returns. This is the usual
- way of setting the exit status.
- In the event that you want the remote invocation to continue running
- and want to decide on the exit status in the future, you can use this
- call. For the case of a remote invocation, the remote process will
- typically exit when the last reference is dropped on @cmdline. The
- exit status of the remote process will be equal to the last value
- that was set with this function.
- In the case that the commandline invocation is local, the situation
- is slightly more complicated. If the commandline invocation results
- in the mainloop running (ie: because the use-count of the application
- increased to a non-zero value) then the application is considered to
- have been 'successful' in a certain sense, and the exit status is
- always zero. If the application use count is zero, though, the exit
- status of the local #GApplicationCommandLine is used.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </instance-parameter>
- <parameter name="exit_status" transfer-ownership="none">
- <doc xml:space="preserve">the exit status</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <property name="arguments"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="GLib.Variant"/>
- </property>
- <property name="is-remote" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="options"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="GLib.Variant"/>
- </property>
- <property name="platform-data"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="GLib.Variant"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ApplicationCommandLinePrivate"
- c:type="GApplicationCommandLinePrivate*"/>
- </field>
- </class>
- <record name="ApplicationCommandLineClass"
- c:type="GApplicationCommandLineClass"
- glib:is-gtype-struct-for="ApplicationCommandLine"
- version="2.28">
- <doc xml:space="preserve">The #GApplicationCommandLineClass-struct
- contains private data only.</doc>
- <field name="parent_class" readable="0" private="1">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="print_literal">
- <callback name="print_literal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="cmdline" transfer-ownership="none">
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="printerr_literal">
- <callback name="printerr_literal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="cmdline" transfer-ownership="none">
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_stdin">
- <callback name="get_stdin">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream for stdin</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="cmdline" transfer-ownership="none">
- <doc xml:space="preserve">a #GApplicationCommandLine</doc>
- <type name="ApplicationCommandLine"
- c:type="GApplicationCommandLine*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="11">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="ApplicationCommandLinePrivate"
- c:type="GApplicationCommandLinePrivate"
- disguised="1">
- </record>
- <bitfield name="ApplicationFlags"
- version="2.28"
- glib:type-name="GApplicationFlags"
- glib:get-type="g_application_flags_get_type"
- c:type="GApplicationFlags">
- <doc xml:space="preserve">Flags used to define the behaviour of a #GApplication.</doc>
- <member name="flags_none"
- value="0"
- c:identifier="G_APPLICATION_FLAGS_NONE"
- glib:nick="flags-none">
- <doc xml:space="preserve">Default</doc>
- </member>
- <member name="is_service"
- value="1"
- c:identifier="G_APPLICATION_IS_SERVICE"
- glib:nick="is-service">
- <doc xml:space="preserve">Run as a service. In this mode, registration
- fails if the service is already running, and the application
- will initially wait up to 10 seconds for an initial activation
- message to arrive.</doc>
- </member>
- <member name="is_launcher"
- value="2"
- c:identifier="G_APPLICATION_IS_LAUNCHER"
- glib:nick="is-launcher">
- <doc xml:space="preserve">Don't try to become the primary instance.</doc>
- </member>
- <member name="handles_open"
- value="4"
- c:identifier="G_APPLICATION_HANDLES_OPEN"
- glib:nick="handles-open">
- <doc xml:space="preserve">This application handles opening files (in
- the primary instance). Note that this flag only affects the default
- implementation of local_command_line(), and has no effect if
- %G_APPLICATION_HANDLES_COMMAND_LINE is given.
- See g_application_run() for details.</doc>
- </member>
- <member name="handles_command_line"
- value="8"
- c:identifier="G_APPLICATION_HANDLES_COMMAND_LINE"
- glib:nick="handles-command-line">
- <doc xml:space="preserve">This application handles command line
- arguments (in the primary instance). Note that this flag only affect
- the default implementation of local_command_line().
- See g_application_run() for details.</doc>
- </member>
- <member name="send_environment"
- value="16"
- c:identifier="G_APPLICATION_SEND_ENVIRONMENT"
- glib:nick="send-environment">
- <doc xml:space="preserve">Send the environment of the
- launching process to the primary instance. Set this flag if your
- application is expected to behave differently depending on certain
- environment variables. For instance, an editor might be expected
- to use the `GIT_COMMITTER_NAME` environment variable
- when editing a git commit message. The environment is available
- to the #GApplication::command-line signal handler, via
- g_application_command_line_getenv().</doc>
- </member>
- <member name="non_unique"
- value="32"
- c:identifier="G_APPLICATION_NON_UNIQUE"
- glib:nick="non-unique">
- <doc xml:space="preserve">Make no attempts to do any of the typical
- single-instance application negotiation, even if the application
- ID is given. The application neither attempts to become the
- owner of the application ID nor does it check if an existing
- owner already exists. Everything occurs in the local process.
- Since: 2.30.</doc>
- </member>
- <member name="can_override_app_id"
- value="64"
- c:identifier="G_APPLICATION_CAN_OVERRIDE_APP_ID"
- glib:nick="can-override-app-id">
- <doc xml:space="preserve">Allow users to override the
- application ID from the command line with `--gapplication-app-id`.
- Since: 2.48</doc>
- </member>
- </bitfield>
- <record name="ApplicationPrivate"
- c:type="GApplicationPrivate"
- disguised="1">
- </record>
- <bitfield name="AskPasswordFlags"
- glib:type-name="GAskPasswordFlags"
- glib:get-type="g_ask_password_flags_get_type"
- c:type="GAskPasswordFlags">
- <doc xml:space="preserve">#GAskPasswordFlags are used to request specific information from the
- user, or to notify the user of their choices in an authentication
- situation.</doc>
- <member name="need_password"
- value="1"
- c:identifier="G_ASK_PASSWORD_NEED_PASSWORD"
- glib:nick="need-password">
- <doc xml:space="preserve">operation requires a password.</doc>
- </member>
- <member name="need_username"
- value="2"
- c:identifier="G_ASK_PASSWORD_NEED_USERNAME"
- glib:nick="need-username">
- <doc xml:space="preserve">operation requires a username.</doc>
- </member>
- <member name="need_domain"
- value="4"
- c:identifier="G_ASK_PASSWORD_NEED_DOMAIN"
- glib:nick="need-domain">
- <doc xml:space="preserve">operation requires a domain.</doc>
- </member>
- <member name="saving_supported"
- value="8"
- c:identifier="G_ASK_PASSWORD_SAVING_SUPPORTED"
- glib:nick="saving-supported">
- <doc xml:space="preserve">operation supports saving settings.</doc>
- </member>
- <member name="anonymous_supported"
- value="16"
- c:identifier="G_ASK_PASSWORD_ANONYMOUS_SUPPORTED"
- glib:nick="anonymous-supported">
- <doc xml:space="preserve">operation supports anonymous users.</doc>
- </member>
- </bitfield>
- <interface name="AsyncInitable"
- c:symbol-prefix="async_initable"
- c:type="GAsyncInitable"
- version="2.22"
- glib:type-name="GAsyncInitable"
- glib:get-type="g_async_initable_get_type"
- glib:type-struct="AsyncInitableIface">
- <doc xml:space="preserve">This is the asynchronous version of #GInitable; it behaves the same
- in all ways except that initialization is asynchronous. For more details
- see the descriptions on #GInitable.
- A class may implement both the #GInitable and #GAsyncInitable interfaces.
- Users of objects implementing this are not intended to use the interface
- method directly; instead it will be used automatically in various ways.
- For C applications you generally just call g_async_initable_new_async()
- directly, or indirectly via a foo_thing_new_async() wrapper. This will call
- g_async_initable_init_async() under the cover, calling back with %NULL and
- a set %GError on failure.
- A typical implementation might look something like this:
- |[<!-- language="C" -->
- enum {
- NOT_INITIALIZED,
- INITIALIZING,
- INITIALIZED
- };
- static void
- _foo_ready_cb (Foo *self)
- {
- GList *l;
- self->priv->state = INITIALIZED;
- for (l = self->priv->init_results; l != NULL; l = l->next)
- {
- GTask *task = l->data;
- if (self->priv->success)
- g_task_return_boolean (task, TRUE);
- else
- g_task_return_new_error (task, ...);
- g_object_unref (task);
- }
- g_list_free (self->priv->init_results);
- self->priv->init_results = NULL;
- }
- static void
- foo_init_async (GAsyncInitable *initable,
- int io_priority,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
- {
- Foo *self = FOO (initable);
- GTask *task;
- task = g_task_new (initable, cancellable, callback, user_data);
- switch (self->priv->state)
- {
- case NOT_INITIALIZED:
- _foo_get_ready (self);
- self->priv->init_results = g_list_append (self->priv->init_results,
- task);
- self->priv->state = INITIALIZING;
- break;
- case INITIALIZING:
- self->priv->init_results = g_list_append (self->priv->init_results,
- task);
- break;
- case INITIALIZED:
- if (!self->priv->success)
- g_task_return_new_error (task, ...);
- else
- g_task_return_boolean (task, TRUE);
- g_object_unref (task);
- break;
- }
- }
- static gboolean
- foo_init_finish (GAsyncInitable *initable,
- GAsyncResult *result,
- GError **error)
- {
- g_return_val_if_fail (g_task_is_valid (result, initable), FALSE);
- return g_task_propagate_boolean (G_TASK (result), error);
- }
- static void
- foo_async_initable_iface_init (gpointer g_iface,
- gpointer data)
- {
- GAsyncInitableIface *iface = g_iface;
- iface->init_async = foo_init_async;
- iface->init_finish = foo_init_finish;
- }
- ]|</doc>
- <function name="new_async"
- c:identifier="g_async_initable_new_async"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Helper function for constructing #GAsyncInitable object. This is
- similar to g_object_new() but also initializes the object asynchronously.
- When the initialization is finished, @callback will be called. You can
- then call g_async_initable_new_finish() to get the new object and check
- for any errors.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GAsyncInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the initialization is
- finished</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="first_property_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the first property, or %NULL if no
- properties</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">the value of the first property, followed by other property
- value pairs, and ended by %NULL.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="new_valist_async"
- c:identifier="g_async_initable_new_valist_async"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Helper function for constructing #GAsyncInitable object. This is
- similar to g_object_new_valist() but also initializes the object
- asynchronously.
- When the initialization is finished, @callback will be called. You can
- then call g_async_initable_new_finish() to get the new object and check
- for any errors.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GAsyncInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the first property, followed by
- the value, and other property value pairs, and ended by %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">The var args list generated from @first_property_name.</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the initialization is
- finished</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="newv_async"
- c:identifier="g_async_initable_newv_async"
- version="2.22">
- <doc xml:space="preserve">Helper function for constructing #GAsyncInitable object. This is
- similar to g_object_newv() but also initializes the object asynchronously.
- When the initialization is finished, @callback will be called. You can
- then call g_async_initable_new_finish() to get the new object and check
- for any errors.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GAsyncInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="n_parameters" transfer-ownership="none">
- <doc xml:space="preserve">the number of parameters in @parameters</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">the parameters to use to construct the object</doc>
- <type name="GObject.Parameter" c:type="GParameter*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the initialization is
- finished</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="init_async" invoker="init_async" version="2.22">
- <doc xml:space="preserve">Starts asynchronous initialization of the object implementing the
- interface. This must be done before any real use of the object after
- initial construction. If the object also implements #GInitable you can
- optionally call g_initable_init() instead.
- When the initialization is finished, @callback will be called. You can
- then call g_async_initable_init_finish() to get the result of the
- initialization.
- Implementations may also support cancellation. If @cancellable is not
- %NULL, then initialization can be cancelled by triggering the cancellable
- object from another thread. If the operation was cancelled, the error
- %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL, and
- the object doesn't support cancellable initialization, the error
- %G_IO_ERROR_NOT_SUPPORTED will be returned.
- As with #GInitable, if the object is not initialized, or initialization
- returns with an error, then all operations on the object except
- g_object_ref() and g_object_unref() are considered to be invalid, and
- have undefined behaviour. They will often fail with g_critical() or
- g_warning(), but this must not be relied on.
- Implementations of this method must be idempotent: i.e. multiple calls
- to this function with the same argument should return the same results.
- Only the first call initializes the object; further calls return the result
- of the first call. This is so that it's safe to implement the singleton
- pattern in the GObject constructor function.
- For classes that also support the #GInitable interface, the default
- implementation of this method will run the g_initable_init() function
- in a thread, so if you want to support asynchronous initialization via
- threads, just implement the #GAsyncInitable interface without overriding
- any interface methods.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncInitable.</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="init_finish"
- invoker="init_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes asynchronous initialization and returns the result.
- See g_async_initable_init_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function
- will return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncInitable.</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="init_async"
- c:identifier="g_async_initable_init_async"
- version="2.22">
- <doc xml:space="preserve">Starts asynchronous initialization of the object implementing the
- interface. This must be done before any real use of the object after
- initial construction. If the object also implements #GInitable you can
- optionally call g_initable_init() instead.
- When the initialization is finished, @callback will be called. You can
- then call g_async_initable_init_finish() to get the result of the
- initialization.
- Implementations may also support cancellation. If @cancellable is not
- %NULL, then initialization can be cancelled by triggering the cancellable
- object from another thread. If the operation was cancelled, the error
- %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL, and
- the object doesn't support cancellable initialization, the error
- %G_IO_ERROR_NOT_SUPPORTED will be returned.
- As with #GInitable, if the object is not initialized, or initialization
- returns with an error, then all operations on the object except
- g_object_ref() and g_object_unref() are considered to be invalid, and
- have undefined behaviour. They will often fail with g_critical() or
- g_warning(), but this must not be relied on.
- Implementations of this method must be idempotent: i.e. multiple calls
- to this function with the same argument should return the same results.
- Only the first call initializes the object; further calls return the result
- of the first call. This is so that it's safe to implement the singleton
- pattern in the GObject constructor function.
- For classes that also support the #GInitable interface, the default
- implementation of this method will run the g_initable_init() function
- in a thread, so if you want to support asynchronous initialization via
- threads, just implement the #GAsyncInitable interface without overriding
- any interface methods.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncInitable.</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="init_finish"
- c:identifier="g_async_initable_init_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes asynchronous initialization and returns the result.
- See g_async_initable_init_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function
- will return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncInitable.</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_finish"
- c:identifier="g_async_initable_new_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes the async construction for the various g_async_initable_new
- calls, returning the created object or %NULL on error.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly created #GObject,
- or %NULL on error. Free with g_object_unref().</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncInitable from the callback</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult from the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="AsyncInitableIface"
- c:type="GAsyncInitableIface"
- glib:is-gtype-struct-for="AsyncInitable"
- version="2.22">
- <doc xml:space="preserve">Provides an interface for asynchronous initializing object such that
- initialization may fail.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="init_async">
- <callback name="init_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncInitable.</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="init_finish">
- <callback name="init_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function
- will return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncInitable.</doc>
- <type name="AsyncInitable" c:type="GAsyncInitable*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <callback name="AsyncReadyCallback" c:type="GAsyncReadyCallback">
- <doc xml:space="preserve">Type definition for a function that will be called back when an asynchronous
- operation within GIO has been completed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="source_object" transfer-ownership="none">
- <doc xml:space="preserve">the object the asynchronous operation was started with.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data passed to the callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <interface name="AsyncResult"
- c:symbol-prefix="async_result"
- c:type="GAsyncResult"
- glib:type-name="GAsyncResult"
- glib:get-type="g_async_result_get_type"
- glib:type-struct="AsyncResultIface">
- <doc xml:space="preserve">Provides a base class for implementing asynchronous function results.
- Asynchronous operations are broken up into two separate operations
- which are chained together by a #GAsyncReadyCallback. To begin
- an asynchronous operation, provide a #GAsyncReadyCallback to the
- asynchronous function. This callback will be triggered when the
- operation has completed, and will be passed a #GAsyncResult instance
- filled with the details of the operation's success or failure, the
- object the asynchronous function was started for and any error codes
- returned. The asynchronous callback function is then expected to call
- the corresponding "_finish()" function, passing the object the
- function was called for, the #GAsyncResult instance, and (optionally)
- an @error to grab any error conditions that may have occurred.
- The "_finish()" function for an operation takes the generic result
- (of type #GAsyncResult) and returns the specific result that the
- operation in question yields (e.g. a #GFileEnumerator for a
- "enumerate children" operation). If the result or error status of the
- operation is not needed, there is no need to call the "_finish()"
- function; GIO will take care of cleaning up the result and error
- information after the #GAsyncReadyCallback returns. You can pass
- %NULL for the #GAsyncReadyCallback if you don't need to take any
- action at all after the operation completes. Applications may also
- take a reference to the #GAsyncResult and call "_finish()" later;
- however, the "_finish()" function may be called at most once.
- Example of a typical asynchronous operation flow:
- |[<!-- language="C" -->
- void _theoretical_frobnitz_async (Theoretical *t,
- GCancellable *c,
- GAsyncReadyCallback cb,
- gpointer u);
- gboolean _theoretical_frobnitz_finish (Theoretical *t,
- GAsyncResult *res,
- GError **e);
- static void
- frobnitz_result_func (GObject *source_object,
- GAsyncResult *res,
- gpointer user_data)
- {
- gboolean success = FALSE;
- success = _theoretical_frobnitz_finish (source_object, res, NULL);
- if (success)
- g_printf ("Hurray!\n");
- else
- g_printf ("Uh oh!\n");
- ...
- }
- int main (int argc, void *argv[])
- {
- ...
- _theoretical_frobnitz_async (theoretical_data,
- NULL,
- frobnitz_result_func,
- NULL);
- ...
- }
- ]|
- The callback for an asynchronous operation is called only once, and is
- always called, even in the case of a cancelled operation. On cancellation
- the result is a %G_IO_ERROR_CANCELLED error.
- ## I/O Priority # {#io-priority}
- Many I/O-related asynchronous operations have a priority parameter,
- which is used in certain cases to determine the order in which
- operations are executed. They are not used to determine system-wide
- I/O scheduling. Priorities are integers, with lower numbers indicating
- higher priority. It is recommended to choose priorities between
- %G_PRIORITY_LOW and %G_PRIORITY_HIGH, with %G_PRIORITY_DEFAULT
- as a default.</doc>
- <virtual-method name="get_source_object" invoker="get_source_object">
- <doc xml:space="preserve">Gets the source object from a #GAsyncResult.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new reference to the source object for the @res,
- or %NULL if there is none.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_user_data" invoker="get_user_data">
- <doc xml:space="preserve">Gets the user data from a #GAsyncResult.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the user data for @res.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_tagged" invoker="is_tagged" version="2.34">
- <doc xml:space="preserve">Checks if @res has the given @source_tag (generally a function
- pointer indicating the function @res was created by).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @res has the indicated @source_tag, %FALSE if
- not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an application-defined tag</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_source_object"
- c:identifier="g_async_result_get_source_object">
- <doc xml:space="preserve">Gets the source object from a #GAsyncResult.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new reference to the source object for the @res,
- or %NULL if there is none.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_user_data" c:identifier="g_async_result_get_user_data">
- <doc xml:space="preserve">Gets the user data from a #GAsyncResult.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the user data for @res.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_tagged"
- c:identifier="g_async_result_is_tagged"
- version="2.34">
- <doc xml:space="preserve">Checks if @res has the given @source_tag (generally a function
- pointer indicating the function @res was created by).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @res has the indicated @source_tag, %FALSE if
- not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an application-defined tag</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="legacy_propagate_error"
- c:identifier="g_async_result_legacy_propagate_error"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">If @res is a #GSimpleAsyncResult, this is equivalent to
- g_simple_async_result_propagate_error(). Otherwise it returns
- %FALSE.
- This can be used for legacy error handling in async *_finish()
- wrapper functions that traditionally handled #GSimpleAsyncResult
- error returns themselves rather than calling into the virtual method.
- This should not be used in new code; #GAsyncResult errors that are
- set by virtual methods should also be extracted by virtual methods,
- to enable subclasses to chain up correctly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @error is has been filled in with an error from
- @res, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <record name="AsyncResultIface"
- c:type="GAsyncResultIface"
- glib:is-gtype-struct-for="AsyncResult">
- <doc xml:space="preserve">Interface definition for #GAsyncResult.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_user_data">
- <callback name="get_user_data">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the user data for @res.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_source_object">
- <callback name="get_source_object">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new reference to the source object for the @res,
- or %NULL if there is none.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_tagged">
- <callback name="is_tagged">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @res has the indicated @source_tag, %FALSE if
- not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an application-defined tag</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="BufferedInputStream"
- c:symbol-prefix="buffered_input_stream"
- c:type="GBufferedInputStream"
- parent="FilterInputStream"
- glib:type-name="GBufferedInputStream"
- glib:get-type="g_buffered_input_stream_get_type"
- glib:type-struct="BufferedInputStreamClass">
- <doc xml:space="preserve">Buffered input stream implements #GFilterInputStream and provides
- for buffered reads.
- By default, #GBufferedInputStream's buffer size is set at 4 kilobytes.
- To create a buffered input stream, use g_buffered_input_stream_new(),
- or g_buffered_input_stream_new_sized() to specify the buffer's size at
- construction.
- To get the size of a buffer within a buffered input stream, use
- g_buffered_input_stream_get_buffer_size(). To change the size of a
- buffered input stream's buffer, use
- g_buffered_input_stream_set_buffer_size(). Note that the buffer's size
- cannot be reduced below the size of the data within the buffer.</doc>
- <implements name="Seekable"/>
- <constructor name="new" c:identifier="g_buffered_input_stream_new">
- <doc xml:space="preserve">Creates a new #GInputStream from the given @base_stream, with
- a buffer set to the default size (4 kilobytes).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream for the given @base_stream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sized"
- c:identifier="g_buffered_input_stream_new_sized">
- <doc xml:space="preserve">Creates a new #GBufferedInputStream from the given @base_stream,
- with a buffer set to @size.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="fill" invoker="fill" throws="1">
- <doc xml:space="preserve">Tries to read @count bytes from the stream into the buffer.
- Will block during this read.
- If @count is zero, returns zero and does nothing. A value of @count
- larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes read into the buffer is returned.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- If @count is -1 then the attempted read size is equal to the number of
- bytes that are required to fill the buffer.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error -1 is returned and @error is set accordingly.
- For the asynchronous, non-blocking, version of this function, see
- g_buffered_input_stream_fill_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read into @stream's buffer, up to @count,
- or -1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="fill_async" invoker="fill_async">
- <doc xml:space="preserve">Reads data into @stream's buffer asynchronously, up to @count size.
- @io_priority can be used to prioritize reads. For the synchronous
- version of this function, see g_buffered_input_stream_fill().
- If @count is -1 then the attempted read size is equal to the number
- of bytes that are required to fill the buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">a #gpointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="fill_finish" invoker="fill_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous read.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize of the read stream, or %-1 on an error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="fill"
- c:identifier="g_buffered_input_stream_fill"
- throws="1">
- <doc xml:space="preserve">Tries to read @count bytes from the stream into the buffer.
- Will block during this read.
- If @count is zero, returns zero and does nothing. A value of @count
- larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes read into the buffer is returned.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- If @count is -1 then the attempted read size is equal to the number of
- bytes that are required to fill the buffer.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error -1 is returned and @error is set accordingly.
- For the asynchronous, non-blocking, version of this function, see
- g_buffered_input_stream_fill_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read into @stream's buffer, up to @count,
- or -1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fill_async"
- c:identifier="g_buffered_input_stream_fill_async">
- <doc xml:space="preserve">Reads data into @stream's buffer asynchronously, up to @count size.
- @io_priority can be used to prioritize reads. For the synchronous
- version of this function, see g_buffered_input_stream_fill().
- If @count is -1 then the attempted read size is equal to the number
- of bytes that are required to fill the buffer.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="fill_finish"
- c:identifier="g_buffered_input_stream_fill_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous read.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize of the read stream, or %-1 on an error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_available"
- c:identifier="g_buffered_input_stream_get_available">
- <doc xml:space="preserve">Gets the size of the available data within the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">size of the available stream.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">#GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_buffer_size"
- c:identifier="g_buffered_input_stream_get_buffer_size">
- <doc xml:space="preserve">Gets the size of the input buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the current buffer size.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek" c:identifier="g_buffered_input_stream_peek">
- <doc xml:space="preserve">Peeks in the buffer, copying data of size @count into @buffer,
- offset @offset bytes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gsize of the number of bytes peeked, or -1 on error.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to
- an allocated chunk of memory</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="peek_buffer"
- c:identifier="g_buffered_input_stream_peek_buffer">
- <doc xml:space="preserve">Returns the buffer with the currently available bytes. The returned
- buffer must not be modified and will become invalid when reading from
- the stream or filling the buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">
- read-only buffer</doc>
- <array length="0" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="count"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the number of bytes available in the buffer</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_byte"
- c:identifier="g_buffered_input_stream_read_byte"
- throws="1">
- <doc xml:space="preserve">Tries to read a single byte from the stream or the buffer. Will block
- during this read.
- On success, the byte read from the stream is returned. On end of stream
- -1 is returned but it's not an exceptional error and @error is not set.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the byte read from the @stream, or -1 on end of stream or error.</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffer_size"
- c:identifier="g_buffered_input_stream_set_buffer_size">
- <doc xml:space="preserve">Sets the size of the internal buffer of @stream to @size, or to the
- size of the contents of the buffer. The buffer can never be resized
- smaller than its current contents.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <property name="buffer-size"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <field name="parent_instance">
- <type name="FilterInputStream" c:type="GFilterInputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="BufferedInputStreamPrivate"
- c:type="GBufferedInputStreamPrivate*"/>
- </field>
- </class>
- <record name="BufferedInputStreamClass"
- c:type="GBufferedInputStreamClass"
- glib:is-gtype-struct-for="BufferedInputStream">
- <field name="parent_class">
- <type name="FilterInputStreamClass" c:type="GFilterInputStreamClass"/>
- </field>
- <field name="fill">
- <callback name="fill" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read into @stream's buffer, up to @count,
- or -1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="fill_async">
- <callback name="fill_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">a #gpointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="fill_finish">
- <callback name="fill_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize of the read stream, or %-1 on an error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedInputStream</doc>
- <type name="BufferedInputStream" c:type="GBufferedInputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="BufferedInputStreamPrivate"
- c:type="GBufferedInputStreamPrivate"
- disguised="1">
- </record>
- <class name="BufferedOutputStream"
- c:symbol-prefix="buffered_output_stream"
- c:type="GBufferedOutputStream"
- parent="FilterOutputStream"
- glib:type-name="GBufferedOutputStream"
- glib:get-type="g_buffered_output_stream_get_type"
- glib:type-struct="BufferedOutputStreamClass">
- <doc xml:space="preserve">Buffered output stream implements #GFilterOutputStream and provides
- for buffered writes.
- By default, #GBufferedOutputStream's buffer size is set at 4 kilobytes.
- To create a buffered output stream, use g_buffered_output_stream_new(),
- or g_buffered_output_stream_new_sized() to specify the buffer's size
- at construction.
- To get the size of a buffer within a buffered input stream, use
- g_buffered_output_stream_get_buffer_size(). To change the size of a
- buffered output stream's buffer, use
- g_buffered_output_stream_set_buffer_size(). Note that the buffer's
- size cannot be reduced below the size of the data within the buffer.</doc>
- <implements name="Seekable"/>
- <constructor name="new" c:identifier="g_buffered_output_stream_new">
- <doc xml:space="preserve">Creates a new buffered output stream for a base stream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GOutputStream for the given @base_stream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sized"
- c:identifier="g_buffered_output_stream_new_sized">
- <doc xml:space="preserve">Creates a new buffered output stream with a given buffer size.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GOutputStream with an internal buffer set to @size.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_auto_grow"
- c:identifier="g_buffered_output_stream_get_auto_grow">
- <doc xml:space="preserve">Checks if the buffer automatically grows as data is added.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @stream's buffer automatically grows,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedOutputStream.</doc>
- <type name="BufferedOutputStream" c:type="GBufferedOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_buffer_size"
- c:identifier="g_buffered_output_stream_get_buffer_size">
- <doc xml:space="preserve">Gets the size of the buffer in the @stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the current size of the buffer.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedOutputStream.</doc>
- <type name="BufferedOutputStream" c:type="GBufferedOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_auto_grow"
- c:identifier="g_buffered_output_stream_set_auto_grow">
- <doc xml:space="preserve">Sets whether or not the @stream's buffer should automatically grow.
- If @auto_grow is true, then each write will just make the buffer
- larger, and you must manually flush the buffer to actually write out
- the data to the underlying stream.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedOutputStream.</doc>
- <type name="BufferedOutputStream" c:type="GBufferedOutputStream*"/>
- </instance-parameter>
- <parameter name="auto_grow" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffer_size"
- c:identifier="g_buffered_output_stream_set_buffer_size">
- <doc xml:space="preserve">Sets the size of the internal buffer to @size.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GBufferedOutputStream.</doc>
- <type name="BufferedOutputStream" c:type="GBufferedOutputStream*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <property name="auto-grow" writable="1" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="buffer-size"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <field name="parent_instance">
- <type name="FilterOutputStream" c:type="GFilterOutputStream"/>
- </field>
- <field name="priv">
- <type name="BufferedOutputStreamPrivate"
- c:type="GBufferedOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="BufferedOutputStreamClass"
- c:type="GBufferedOutputStreamClass"
- glib:is-gtype-struct-for="BufferedOutputStream">
- <field name="parent_class">
- <type name="FilterOutputStreamClass"
- c:type="GFilterOutputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="BufferedOutputStreamPrivate"
- c:type="GBufferedOutputStreamPrivate"
- disguised="1">
- </record>
- <callback name="BusAcquiredCallback"
- c:type="GBusAcquiredCallback"
- version="2.26">
- <doc xml:space="preserve">Invoked when a connection to a message bus has been obtained.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection to a message bus.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name that is requested to be owned.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">User data passed to g_bus_own_name().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="BusNameAcquiredCallback"
- c:type="GBusNameAcquiredCallback"
- version="2.26">
- <doc xml:space="preserve">Invoked when the name is acquired.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection on which to acquired the name.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name being owned.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">User data passed to g_bus_own_name() or g_bus_own_name_on_connection().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="BusNameAppearedCallback"
- c:type="GBusNameAppearedCallback"
- version="2.26">
- <doc xml:space="preserve">Invoked when the name being watched is known to have to have a owner.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection the name is being watched on.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name being watched.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="name_owner" transfer-ownership="none">
- <doc xml:space="preserve">Unique name of the owner of the name being watched.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">User data passed to g_bus_watch_name().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="BusNameLostCallback"
- c:type="GBusNameLostCallback"
- version="2.26">
- <doc xml:space="preserve">Invoked when the name is lost or @connection has been closed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection on which to acquire the name or %NULL if
- the connection was disconnected.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name being owned.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">User data passed to g_bus_own_name() or g_bus_own_name_on_connection().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="BusNameOwnerFlags"
- version="2.26"
- glib:type-name="GBusNameOwnerFlags"
- glib:get-type="g_bus_name_owner_flags_get_type"
- c:type="GBusNameOwnerFlags">
- <doc xml:space="preserve">Flags used in g_bus_own_name().</doc>
- <member name="none"
- value="0"
- c:identifier="G_BUS_NAME_OWNER_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="allow_replacement"
- value="1"
- c:identifier="G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT"
- glib:nick="allow-replacement">
- <doc xml:space="preserve">Allow another message bus connection to claim the name.</doc>
- </member>
- <member name="replace"
- value="2"
- c:identifier="G_BUS_NAME_OWNER_FLAGS_REPLACE"
- glib:nick="replace">
- <doc xml:space="preserve">If another message bus connection owns the name and have
- specified #G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT, then take the name from the other connection.</doc>
- </member>
- </bitfield>
- <callback name="BusNameVanishedCallback"
- c:type="GBusNameVanishedCallback"
- version="2.26">
- <doc xml:space="preserve">Invoked when the name being watched is known not to have to have a owner.
- This is also invoked when the #GDBusConection on which the watch was
- established has been closed. In that case, @connection will be
- %NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection the name is being watched on, or
- %NULL.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name being watched.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">User data passed to g_bus_watch_name().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="BusNameWatcherFlags"
- version="2.26"
- glib:type-name="GBusNameWatcherFlags"
- glib:get-type="g_bus_name_watcher_flags_get_type"
- c:type="GBusNameWatcherFlags">
- <doc xml:space="preserve">Flags used in g_bus_watch_name().</doc>
- <member name="none"
- value="0"
- c:identifier="G_BUS_NAME_WATCHER_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="auto_start"
- value="1"
- c:identifier="G_BUS_NAME_WATCHER_FLAGS_AUTO_START"
- glib:nick="auto-start">
- <doc xml:space="preserve">If no-one owns the name when
- beginning to watch the name, ask the bus to launch an owner for the
- name.</doc>
- </member>
- </bitfield>
- <enumeration name="BusType"
- version="2.26"
- glib:type-name="GBusType"
- glib:get-type="g_bus_type_get_type"
- c:type="GBusType">
- <doc xml:space="preserve">An enumeration for well-known message buses.</doc>
- <member name="starter"
- value="-1"
- c:identifier="G_BUS_TYPE_STARTER"
- glib:nick="starter">
- <doc xml:space="preserve">An alias for the message bus that activated the process, if any.</doc>
- </member>
- <member name="none"
- value="0"
- c:identifier="G_BUS_TYPE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">Not a message bus.</doc>
- </member>
- <member name="system"
- value="1"
- c:identifier="G_BUS_TYPE_SYSTEM"
- glib:nick="system">
- <doc xml:space="preserve">The system-wide message bus.</doc>
- </member>
- <member name="session"
- value="2"
- c:identifier="G_BUS_TYPE_SESSION"
- glib:nick="session">
- <doc xml:space="preserve">The login session message bus.</doc>
- </member>
- </enumeration>
- <class name="BytesIcon"
- c:symbol-prefix="bytes_icon"
- c:type="GBytesIcon"
- parent="GObject.Object"
- glib:type-name="GBytesIcon"
- glib:get-type="g_bytes_icon_get_type">
- <doc xml:space="preserve">#GBytesIcon specifies an image held in memory in a common format (usually
- png) to be used as icon.</doc>
- <implements name="Icon"/>
- <implements name="LoadableIcon"/>
- <constructor name="new" c:identifier="g_bytes_icon_new" version="2.38">
- <doc xml:space="preserve">Creates a new icon for a bytes.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon for the given
- @bytes, or %NULL on error.</doc>
- <type name="BytesIcon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="bytes" transfer-ownership="none">
- <doc xml:space="preserve">a #GBytes.</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_bytes"
- c:identifier="g_bytes_icon_get_bytes"
- version="2.38">
- <doc xml:space="preserve">Gets the #GBytes associated with the given @icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GBytes, or %NULL.</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="BytesIcon" c:type="GBytesIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="bytes"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The bytes containing the icon.</doc>
- <type name="GLib.Bytes"/>
- </property>
- </class>
- <class name="Cancellable"
- c:symbol-prefix="cancellable"
- c:type="GCancellable"
- parent="GObject.Object"
- glib:type-name="GCancellable"
- glib:get-type="g_cancellable_get_type"
- glib:type-struct="CancellableClass">
- <doc xml:space="preserve">GCancellable is a thread-safe operation cancellation stack used
- throughout GIO to allow for cancellation of synchronous and
- asynchronous operations.</doc>
- <constructor name="new" c:identifier="g_cancellable_new">
- <doc xml:space="preserve">Creates a new #GCancellable object.
- Applications that want to start one or more operations
- that should be cancellable should create a #GCancellable
- and pass it to the operations.
- One #GCancellable can be used in multiple consecutive
- operations or in multiple concurrent operations.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GCancellable.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </return-value>
- </constructor>
- <function name="get_current" c:identifier="g_cancellable_get_current">
- <doc xml:space="preserve">Gets the top cancellable from the stack.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a #GCancellable from the top
- of the stack, or %NULL if the stack is empty.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </return-value>
- </function>
- <virtual-method name="cancelled">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="cancel" c:identifier="g_cancellable_cancel">
- <doc xml:space="preserve">Will set @cancellable to cancelled, and will emit the
- #GCancellable::cancelled signal. (However, see the warning about
- race conditions in the documentation for that signal if you are
- planning to connect to it.)
- This function is thread-safe. In other words, you can safely call
- it from a thread other than the one running the operation that was
- passed the @cancellable.
- If @cancellable is %NULL, this function returns immediately for convenience.
- The convention within GIO is that cancelling an asynchronous
- operation causes it to complete asynchronously. That is, if you
- cancel the operation from the same thread in which it is running,
- then the operation's #GAsyncReadyCallback will not be invoked until
- the application returns to the main loop.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable object.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="connect"
- c:identifier="g_cancellable_connect"
- version="2.22">
- <doc xml:space="preserve">Convenience function to connect to the #GCancellable::cancelled
- signal. Also handles the race condition that may happen
- if the cancellable is cancelled right before connecting.
- @callback is called at most once, either directly at the
- time of the connect if @cancellable is already cancelled,
- or when @cancellable is cancelled in some thread.
- @data_destroy_func will be called when the handler is
- disconnected, or immediately if the cancellable is already
- cancelled.
- See #GCancellable::cancelled for details on how to use this.
- Since GLib 2.40, the lock protecting @cancellable is not held when
- @callback is invoked. This lifts a restriction in place for
- earlier GLib versions which now makes it easier to write cleanup
- code that unconditionally invokes e.g. g_cancellable_cancel().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The id of the signal handler or 0 if @cancellable has already
- been cancelled.</doc>
- <type name="gulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">The #GCallback to connect.</doc>
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="data_destroy_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Free function for @data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="disconnect"
- c:identifier="g_cancellable_disconnect"
- version="2.22">
- <doc xml:space="preserve">Disconnects a handler from a cancellable instance similar to
- g_signal_handler_disconnect(). Additionally, in the event that a
- signal handler is currently running, this call will block until the
- handler has finished. Calling this function from a
- #GCancellable::cancelled signal handler will therefore result in a
- deadlock.
- This avoids a race condition where a thread cancels at the
- same time as the cancellable operation is finished and the
- signal handler is removed. See #GCancellable::cancelled for
- details on how to use this.
- If @cancellable is %NULL or @handler_id is %0 this function does
- nothing.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- <parameter name="handler_id" transfer-ownership="none">
- <doc xml:space="preserve">Handler id of the handler to be disconnected, or %0.</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_fd" c:identifier="g_cancellable_get_fd">
- <doc xml:space="preserve">Gets the file descriptor for a cancellable job. This can be used to
- implement cancellable operations on Unix systems. The returned fd will
- turn readable when @cancellable is cancelled.
- You are not supposed to read from the fd yourself, just check for
- readable status. Reading to unset the readable status is done
- with g_cancellable_reset().
- After a successful return from this function, you should use
- g_cancellable_release_fd() to free up resources allocated for
- the returned file descriptor.
- See also g_cancellable_make_pollfd().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A valid file descriptor. %-1 if the file descriptor
- is not supported, or on errors.</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_cancelled" c:identifier="g_cancellable_is_cancelled">
- <doc xml:space="preserve">Checks if a cancellable job has been cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @cancellable is cancelled,
- FALSE if called with %NULL or if item is not cancelled.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="make_pollfd"
- c:identifier="g_cancellable_make_pollfd"
- version="2.22">
- <doc xml:space="preserve">Creates a #GPollFD corresponding to @cancellable; this can be passed
- to g_poll() and used to poll for cancellation. This is useful both
- for unix systems without a native poll and for portability to
- windows.
- When this function returns %TRUE, you should use
- g_cancellable_release_fd() to free up resources allocated for the
- @pollfd. After a %FALSE return, do not call g_cancellable_release_fd().
- If this function returns %FALSE, either no @cancellable was given or
- resource limits prevent this function from allocating the necessary
- structures for polling. (On Linux, you will likely have reached
- the maximum number of file descriptors.) The suggested way to handle
- these cases is to ignore the @cancellable.
- You are not supposed to read from the fd yourself, just check for
- readable status. Reading to unset the readable status is done
- with g_cancellable_reset().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @pollfd was successfully initialized, %FALSE on
- failure to prepare the cancellable.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- <parameter name="pollfd" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to a #GPollFD</doc>
- <type name="GLib.PollFD" c:type="GPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="pop_current" c:identifier="g_cancellable_pop_current">
- <doc xml:space="preserve">Pops @cancellable off the cancellable stack (verifying that @cancellable
- is on the top of the stack).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="push_current" c:identifier="g_cancellable_push_current">
- <doc xml:space="preserve">Pushes @cancellable onto the cancellable stack. The current
- cancellable can then be received using g_cancellable_get_current().
- This is useful when implementing cancellable operations in
- code that does not allow you to pass down the cancellable object.
- This is typically called automatically by e.g. #GFile operations,
- so you rarely have to call this yourself.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="release_fd"
- c:identifier="g_cancellable_release_fd"
- version="2.22">
- <doc xml:space="preserve">Releases a resources previously allocated by g_cancellable_get_fd()
- or g_cancellable_make_pollfd().
- For compatibility reasons with older releases, calling this function
- is not strictly required, the resources will be automatically freed
- when the @cancellable is finalized. However, the @cancellable will
- block scarce file descriptors until it is finalized if this function
- is not called. This can cause the application to run out of file
- descriptors when many #GCancellables are used at the same time.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="reset" c:identifier="g_cancellable_reset">
- <doc xml:space="preserve">Resets @cancellable to its uncancelled state.
- If cancellable is currently in use by any cancellable operation
- then the behavior of this function is undefined.
- Note that it is generally not a good idea to reuse an existing
- cancellable for more operations after it has been cancelled once,
- as this function might tempt you to do. The recommended practice
- is to drop the reference to a cancellable after cancelling it,
- and let it die with the outstanding async operations. You should
- create a fresh cancellable for further async operations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable object.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_error_if_cancelled"
- c:identifier="g_cancellable_set_error_if_cancelled"
- throws="1">
- <doc xml:space="preserve">If the @cancellable is cancelled, sets the error to notify
- that the operation was cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @cancellable was cancelled, %FALSE if it was not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="source_new"
- c:identifier="g_cancellable_source_new"
- version="2.28"
- introspectable="0">
- <doc xml:space="preserve">Creates a source that triggers if @cancellable is cancelled and
- calls its callback of type #GCancellableSourceFunc. This is
- primarily useful for attaching to another (non-cancellable) source
- with g_source_add_child_source() to add cancellability to it.
- For convenience, you can call this with a %NULL #GCancellable,
- in which case the source will never trigger.
- The new #GSource will hold a reference to the #GCancellable.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GSource.</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="CancellablePrivate" c:type="GCancellablePrivate*"/>
- </field>
- <glib:signal name="cancelled" when="last">
- <doc xml:space="preserve">Emitted when the operation has been cancelled.
- Can be used by implementations of cancellable operations. If the
- operation is cancelled from another thread, the signal will be
- emitted in the thread that cancelled the operation, not the
- thread that is running the operation.
- Note that disconnecting from this signal (or any signal) in a
- multi-threaded program is prone to race conditions. For instance
- it is possible that a signal handler may be invoked even after
- a call to g_signal_handler_disconnect() for that handler has
- already returned.
- There is also a problem when cancellation happens right before
- connecting to the signal. If this happens the signal will
- unexpectedly not be emitted, and checking before connecting to
- the signal leaves a race condition where this is still happening.
- In order to make it safe and easy to connect handlers there
- are two helper functions: g_cancellable_connect() and
- g_cancellable_disconnect() which protect against problems
- like this.
- An example of how to us this:
- |[<!-- language="C" -->
- // Make sure we don't do unnecessary work if already cancelled
- if (g_cancellable_set_error_if_cancelled (cancellable, error))
- return;
- // Set up all the data needed to be able to handle cancellation
- // of the operation
- my_data = my_data_new (...);
- id = 0;
- if (cancellable)
- id = g_cancellable_connect (cancellable,
- G_CALLBACK (cancelled_handler)
- data, NULL);
- // cancellable operation here...
- g_cancellable_disconnect (cancellable, id);
- // cancelled_handler is never called after this, it is now safe
- // to free the data
- my_data_free (my_data);
- ]|
- Note that the cancelled signal is emitted in the thread that
- the user cancelled from, which may be the main thread. So, the
- cancellable signal should not do something that can block.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <record name="CancellableClass"
- c:type="GCancellableClass"
- glib:is-gtype-struct-for="Cancellable">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="cancelled">
- <callback name="cancelled">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="CancellablePrivate"
- c:type="GCancellablePrivate"
- disguised="1">
- </record>
- <callback name="CancellableSourceFunc"
- c:type="GCancellableSourceFunc"
- version="2.28">
- <doc xml:space="preserve">This is the function type of the callback used for the #GSource
- returned by g_cancellable_source_new().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">it should return %FALSE if the source should be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">data passed in by the user.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="CharsetConverter"
- c:symbol-prefix="charset_converter"
- c:type="GCharsetConverter"
- parent="GObject.Object"
- glib:type-name="GCharsetConverter"
- glib:get-type="g_charset_converter_get_type"
- glib:type-struct="CharsetConverterClass">
- <doc xml:space="preserve">#GCharsetConverter is an implementation of #GConverter based on
- GIConv.</doc>
- <implements name="Converter"/>
- <implements name="Initable"/>
- <constructor name="new"
- c:identifier="g_charset_converter_new"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">Creates a new #GCharsetConverter.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GCharsetConverter or %NULL on error.</doc>
- <type name="CharsetConverter" c:type="GCharsetConverter*"/>
- </return-value>
- <parameters>
- <parameter name="to_charset" transfer-ownership="none">
- <doc xml:space="preserve">destination charset</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="from_charset" transfer-ownership="none">
- <doc xml:space="preserve">source charset</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_num_fallbacks"
- c:identifier="g_charset_converter_get_num_fallbacks"
- version="2.24">
- <doc xml:space="preserve">Gets the number of fallbacks that @converter has applied so far.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of fallbacks that @converter has applied</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GCharsetConverter</doc>
- <type name="CharsetConverter" c:type="GCharsetConverter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_use_fallback"
- c:identifier="g_charset_converter_get_use_fallback"
- version="2.24">
- <doc xml:space="preserve">Gets the #GCharsetConverter:use-fallback property.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if fallbacks are used by @converter</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GCharsetConverter</doc>
- <type name="CharsetConverter" c:type="GCharsetConverter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_use_fallback"
- c:identifier="g_charset_converter_set_use_fallback"
- version="2.24">
- <doc xml:space="preserve">Sets the #GCharsetConverter:use-fallback property.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GCharsetConverter</doc>
- <type name="CharsetConverter" c:type="GCharsetConverter*"/>
- </instance-parameter>
- <parameter name="use_fallback" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to use fallbacks</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="from-charset"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="to-charset"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="use-fallback"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- </class>
- <record name="CharsetConverterClass"
- c:type="GCharsetConverterClass"
- glib:is-gtype-struct-for="CharsetConverter">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <interface name="Converter"
- c:symbol-prefix="converter"
- c:type="GConverter"
- version="2.24"
- glib:type-name="GConverter"
- glib:get-type="g_converter_get_type"
- glib:type-struct="ConverterIface">
- <doc xml:space="preserve">#GConverter is implemented by objects that convert
- binary data in various ways. The conversion can be
- stateful and may fail at any place.
- Some example conversions are: character set conversion,
- compression, decompression and regular expression
- replace.</doc>
- <virtual-method name="convert"
- invoker="convert"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">This is the main operation used when converting data. It is to be called
- multiple times in a loop, and each time it will do some work, i.e.
- producing some output (in @outbuf) or consuming some input (from @inbuf) or
- both. If its not possible to do any work an error is returned.
- Note that a single call may not consume all input (or any input at all).
- Also a call may produce output even if given no input, due to state stored
- in the converter producing output.
- If any data was either produced or consumed, and then an error happens, then
- only the successful conversion is reported and the error is returned on the
- next call.
- A full conversion loop involves calling this method repeatedly, each time
- giving it new input and space output space. When there is no more input
- data after the data in @inbuf, the flag %G_CONVERTER_INPUT_AT_END must be set.
- The loop will be (unless some error happens) returning %G_CONVERTER_CONVERTED
- each time until all data is consumed and all output is produced, then
- %G_CONVERTER_FINISHED is returned instead. Note, that %G_CONVERTER_FINISHED
- may be returned even if %G_CONVERTER_INPUT_AT_END is not set, for instance
- in a decompression converter where the end of data is detectable from the
- data (and there might even be other data after the end of the compressed data).
- When some data has successfully been converted @bytes_read and is set to
- the number of bytes read from @inbuf, and @bytes_written is set to indicate
- how many bytes was written to @outbuf. If there are more data to output
- or consume (i.e. unless the %G_CONVERTER_INPUT_AT_END is specified) then
- %G_CONVERTER_CONVERTED is returned, and if no more data is to be output
- then %G_CONVERTER_FINISHED is returned.
- On error %G_CONVERTER_ERROR is returned and @error is set accordingly.
- Some errors need special handling:
- %G_IO_ERROR_NO_SPACE is returned if there is not enough space
- to write the resulting converted data, the application should
- call the function again with a larger @outbuf to continue.
- %G_IO_ERROR_PARTIAL_INPUT is returned if there is not enough
- input to fully determine what the conversion should produce,
- and the %G_CONVERTER_INPUT_AT_END flag is not set. This happens for
- example with an incomplete multibyte sequence when converting text,
- or when a regexp matches up to the end of the input (and may match
- further input). It may also happen when @inbuf_size is zero and
- there is no more data to produce.
- When this happens the application should read more input and then
- call the function again. If further input shows that there is no
- more data call the function again with the same data but with
- the %G_CONVERTER_INPUT_AT_END flag set. This may cause the conversion
- to finish as e.g. in the regexp match case (or, to fail again with
- %G_IO_ERROR_PARTIAL_INPUT in e.g. a charset conversion where the
- input is actually partial).
- After g_converter_convert() has returned %G_CONVERTER_FINISHED the
- converter object is in an invalid state where its not allowed
- to call g_converter_convert() anymore. At this time you can only
- free the object or call g_converter_reset() to reset it to the
- initial state.
- If the flag %G_CONVERTER_FLUSH is set then conversion is modified
- to try to write out all internal state to the output. The application
- has to call the function multiple times with the flag set, and when
- the available input has been consumed and all internal state has
- been produced then %G_CONVERTER_FLUSHED (or %G_CONVERTER_FINISHED if
- really at the end) is returned instead of %G_CONVERTER_CONVERTED.
- This is somewhat similar to what happens at the end of the input stream,
- but done in the middle of the data.
- This has different meanings for different conversions. For instance
- in a compression converter it would mean that we flush all the
- compression state into output such that if you uncompress the
- compressed data you get back all the input data. Doing this may
- make the final file larger due to padding though. Another example
- is a regexp conversion, where if you at the end of the flushed data
- have a match, but there is also a potential longer match. In the
- non-flushed case we would ask for more input, but when flushing we
- treat this as the end of input and do the match.
- Flushing is not always possible (like if a charset converter flushes
- at a partial multibyte sequence). Converters are supposed to try
- to produce as much output as possible and then return an error
- (typically %G_IO_ERROR_PARTIAL_INPUT).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterResult, %G_CONVERTER_ERROR on error.</doc>
- <type name="ConverterResult" c:type="GConverterResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter.</doc>
- <type name="Converter" c:type="GConverter*"/>
- </instance-parameter>
- <parameter name="inbuf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the buffer
- containing the data to convert.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="inbuf_size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes in @inbuf</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="outbuf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to write
- converted data in.</doc>
- <array length="3" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="outbuf_size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes in @outbuf, must be at least one</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterFlags controlling the conversion details</doc>
- <type name="ConverterFlags" c:type="GConverterFlags"/>
- </parameter>
- <parameter name="bytes_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">will be set to the number of bytes read from @inbuf on success</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">will be set to the number of bytes written to @outbuf on success</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reset" invoker="reset" version="2.24">
- <doc xml:space="preserve">Resets all internal state in the converter, making it behave
- as if it was just created. If the converter has any internal
- state that would produce output then that output is lost.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter.</doc>
- <type name="Converter" c:type="GConverter*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="convert"
- c:identifier="g_converter_convert"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">This is the main operation used when converting data. It is to be called
- multiple times in a loop, and each time it will do some work, i.e.
- producing some output (in @outbuf) or consuming some input (from @inbuf) or
- both. If its not possible to do any work an error is returned.
- Note that a single call may not consume all input (or any input at all).
- Also a call may produce output even if given no input, due to state stored
- in the converter producing output.
- If any data was either produced or consumed, and then an error happens, then
- only the successful conversion is reported and the error is returned on the
- next call.
- A full conversion loop involves calling this method repeatedly, each time
- giving it new input and space output space. When there is no more input
- data after the data in @inbuf, the flag %G_CONVERTER_INPUT_AT_END must be set.
- The loop will be (unless some error happens) returning %G_CONVERTER_CONVERTED
- each time until all data is consumed and all output is produced, then
- %G_CONVERTER_FINISHED is returned instead. Note, that %G_CONVERTER_FINISHED
- may be returned even if %G_CONVERTER_INPUT_AT_END is not set, for instance
- in a decompression converter where the end of data is detectable from the
- data (and there might even be other data after the end of the compressed data).
- When some data has successfully been converted @bytes_read and is set to
- the number of bytes read from @inbuf, and @bytes_written is set to indicate
- how many bytes was written to @outbuf. If there are more data to output
- or consume (i.e. unless the %G_CONVERTER_INPUT_AT_END is specified) then
- %G_CONVERTER_CONVERTED is returned, and if no more data is to be output
- then %G_CONVERTER_FINISHED is returned.
- On error %G_CONVERTER_ERROR is returned and @error is set accordingly.
- Some errors need special handling:
- %G_IO_ERROR_NO_SPACE is returned if there is not enough space
- to write the resulting converted data, the application should
- call the function again with a larger @outbuf to continue.
- %G_IO_ERROR_PARTIAL_INPUT is returned if there is not enough
- input to fully determine what the conversion should produce,
- and the %G_CONVERTER_INPUT_AT_END flag is not set. This happens for
- example with an incomplete multibyte sequence when converting text,
- or when a regexp matches up to the end of the input (and may match
- further input). It may also happen when @inbuf_size is zero and
- there is no more data to produce.
- When this happens the application should read more input and then
- call the function again. If further input shows that there is no
- more data call the function again with the same data but with
- the %G_CONVERTER_INPUT_AT_END flag set. This may cause the conversion
- to finish as e.g. in the regexp match case (or, to fail again with
- %G_IO_ERROR_PARTIAL_INPUT in e.g. a charset conversion where the
- input is actually partial).
- After g_converter_convert() has returned %G_CONVERTER_FINISHED the
- converter object is in an invalid state where its not allowed
- to call g_converter_convert() anymore. At this time you can only
- free the object or call g_converter_reset() to reset it to the
- initial state.
- If the flag %G_CONVERTER_FLUSH is set then conversion is modified
- to try to write out all internal state to the output. The application
- has to call the function multiple times with the flag set, and when
- the available input has been consumed and all internal state has
- been produced then %G_CONVERTER_FLUSHED (or %G_CONVERTER_FINISHED if
- really at the end) is returned instead of %G_CONVERTER_CONVERTED.
- This is somewhat similar to what happens at the end of the input stream,
- but done in the middle of the data.
- This has different meanings for different conversions. For instance
- in a compression converter it would mean that we flush all the
- compression state into output such that if you uncompress the
- compressed data you get back all the input data. Doing this may
- make the final file larger due to padding though. Another example
- is a regexp conversion, where if you at the end of the flushed data
- have a match, but there is also a potential longer match. In the
- non-flushed case we would ask for more input, but when flushing we
- treat this as the end of input and do the match.
- Flushing is not always possible (like if a charset converter flushes
- at a partial multibyte sequence). Converters are supposed to try
- to produce as much output as possible and then return an error
- (typically %G_IO_ERROR_PARTIAL_INPUT).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterResult, %G_CONVERTER_ERROR on error.</doc>
- <type name="ConverterResult" c:type="GConverterResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter.</doc>
- <type name="Converter" c:type="GConverter*"/>
- </instance-parameter>
- <parameter name="inbuf" transfer-ownership="none">
- <doc xml:space="preserve">the buffer
- containing the data to convert.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="inbuf_size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes in @inbuf</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="outbuf" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to write
- converted data in.</doc>
- <array length="3" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="outbuf_size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes in @outbuf, must be at least one</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterFlags controlling the conversion details</doc>
- <type name="ConverterFlags" c:type="GConverterFlags"/>
- </parameter>
- <parameter name="bytes_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">will be set to the number of bytes read from @inbuf on success</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">will be set to the number of bytes written to @outbuf on success</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="reset" c:identifier="g_converter_reset" version="2.24">
- <doc xml:space="preserve">Resets all internal state in the converter, making it behave
- as if it was just created. If the converter has any internal
- state that would produce output then that output is lost.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter.</doc>
- <type name="Converter" c:type="GConverter*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <bitfield name="ConverterFlags"
- version="2.24"
- glib:type-name="GConverterFlags"
- glib:get-type="g_converter_flags_get_type"
- c:type="GConverterFlags">
- <doc xml:space="preserve">Flags used when calling a g_converter_convert().</doc>
- <member name="none"
- value="0"
- c:identifier="G_CONVERTER_NO_FLAGS"
- glib:nick="none">
- <doc xml:space="preserve">No flags.</doc>
- </member>
- <member name="input_at_end"
- value="1"
- c:identifier="G_CONVERTER_INPUT_AT_END"
- glib:nick="input-at-end">
- <doc xml:space="preserve">At end of input data</doc>
- </member>
- <member name="flush"
- value="2"
- c:identifier="G_CONVERTER_FLUSH"
- glib:nick="flush">
- <doc xml:space="preserve">Flush data</doc>
- </member>
- </bitfield>
- <record name="ConverterIface"
- c:type="GConverterIface"
- glib:is-gtype-struct-for="Converter"
- version="2.24">
- <doc xml:space="preserve">Provides an interface for converting data from one type
- to another type. The conversion can be stateful
- and may fail at any place.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="convert">
- <callback name="convert" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterResult, %G_CONVERTER_ERROR on error.</doc>
- <type name="ConverterResult" c:type="GConverterResult"/>
- </return-value>
- <parameters>
- <parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter.</doc>
- <type name="Converter" c:type="GConverter*"/>
- </parameter>
- <parameter name="inbuf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the buffer
- containing the data to convert.</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="inbuf_size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes in @inbuf</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="outbuf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to write
- converted data in.</doc>
- <array length="4" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="outbuf_size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes in @outbuf, must be at least one</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterFlags controlling the conversion details</doc>
- <type name="ConverterFlags" c:type="GConverterFlags"/>
- </parameter>
- <parameter name="bytes_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">will be set to the number of bytes read from @inbuf on success</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">will be set to the number of bytes written to @outbuf on success</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reset">
- <callback name="reset">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter.</doc>
- <type name="Converter" c:type="GConverter*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="ConverterInputStream"
- c:symbol-prefix="converter_input_stream"
- c:type="GConverterInputStream"
- parent="FilterInputStream"
- glib:type-name="GConverterInputStream"
- glib:get-type="g_converter_input_stream_get_type"
- glib:type-struct="ConverterInputStreamClass">
- <doc xml:space="preserve">Converter input stream implements #GInputStream and allows
- conversion of data of various types during reading.
- As of GLib 2.34, #GConverterInputStream implements
- #GPollableInputStream.</doc>
- <implements name="PollableInputStream"/>
- <constructor name="new" c:identifier="g_converter_input_stream_new">
- <doc xml:space="preserve">Creates a new converter input stream for the @base_stream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter</doc>
- <type name="Converter" c:type="GConverter*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_converter"
- c:identifier="g_converter_input_stream_get_converter"
- version="2.24">
- <doc xml:space="preserve">Gets the #GConverter that is used by @converter_stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the converter of the converter input stream</doc>
- <type name="Converter" c:type="GConverter*"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter_stream"
- transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterInputStream</doc>
- <type name="ConverterInputStream" c:type="GConverterInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="converter"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Converter"/>
- </property>
- <field name="parent_instance">
- <type name="FilterInputStream" c:type="GFilterInputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ConverterInputStreamPrivate"
- c:type="GConverterInputStreamPrivate*"/>
- </field>
- </class>
- <record name="ConverterInputStreamClass"
- c:type="GConverterInputStreamClass"
- glib:is-gtype-struct-for="ConverterInputStream">
- <field name="parent_class">
- <type name="FilterInputStreamClass" c:type="GFilterInputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="ConverterInputStreamPrivate"
- c:type="GConverterInputStreamPrivate"
- disguised="1">
- </record>
- <class name="ConverterOutputStream"
- c:symbol-prefix="converter_output_stream"
- c:type="GConverterOutputStream"
- parent="FilterOutputStream"
- glib:type-name="GConverterOutputStream"
- glib:get-type="g_converter_output_stream_get_type"
- glib:type-struct="ConverterOutputStreamClass">
- <doc xml:space="preserve">Converter output stream implements #GOutputStream and allows
- conversion of data of various types during reading.
- As of GLib 2.34, #GConverterOutputStream implements
- #GPollableOutputStream.</doc>
- <implements name="PollableOutputStream"/>
- <constructor name="new" c:identifier="g_converter_output_stream_new">
- <doc xml:space="preserve">Creates a new converter output stream for the @base_stream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="converter" transfer-ownership="none">
- <doc xml:space="preserve">a #GConverter</doc>
- <type name="Converter" c:type="GConverter*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_converter"
- c:identifier="g_converter_output_stream_get_converter"
- version="2.24">
- <doc xml:space="preserve">Gets the #GConverter that is used by @converter_stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the converter of the converter output stream</doc>
- <type name="Converter" c:type="GConverter*"/>
- </return-value>
- <parameters>
- <instance-parameter name="converter_stream"
- transfer-ownership="none">
- <doc xml:space="preserve">a #GConverterOutputStream</doc>
- <type name="ConverterOutputStream"
- c:type="GConverterOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="converter"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Converter"/>
- </property>
- <field name="parent_instance">
- <type name="FilterOutputStream" c:type="GFilterOutputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ConverterOutputStreamPrivate"
- c:type="GConverterOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="ConverterOutputStreamClass"
- c:type="GConverterOutputStreamClass"
- glib:is-gtype-struct-for="ConverterOutputStream">
- <field name="parent_class">
- <type name="FilterOutputStreamClass"
- c:type="GFilterOutputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="ConverterOutputStreamPrivate"
- c:type="GConverterOutputStreamPrivate"
- disguised="1">
- </record>
- <enumeration name="ConverterResult"
- version="2.24"
- glib:type-name="GConverterResult"
- glib:get-type="g_converter_result_get_type"
- c:type="GConverterResult">
- <doc xml:space="preserve">Results returned from g_converter_convert().</doc>
- <member name="error"
- value="0"
- c:identifier="G_CONVERTER_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">There was an error during conversion.</doc>
- </member>
- <member name="converted"
- value="1"
- c:identifier="G_CONVERTER_CONVERTED"
- glib:nick="converted">
- <doc xml:space="preserve">Some data was consumed or produced</doc>
- </member>
- <member name="finished"
- value="2"
- c:identifier="G_CONVERTER_FINISHED"
- glib:nick="finished">
- <doc xml:space="preserve">The conversion is finished</doc>
- </member>
- <member name="flushed"
- value="3"
- c:identifier="G_CONVERTER_FLUSHED"
- glib:nick="flushed">
- <doc xml:space="preserve">Flushing is finished</doc>
- </member>
- </enumeration>
- <class name="Credentials"
- c:symbol-prefix="credentials"
- c:type="GCredentials"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GCredentials"
- glib:get-type="g_credentials_get_type"
- glib:type-struct="CredentialsClass">
- <doc xml:space="preserve">The #GCredentials type is a reference-counted wrapper for native
- credentials. This information is typically used for identifying,
- authenticating and authorizing other processes.
- Some operating systems supports looking up the credentials of the
- remote peer of a communication endpoint - see e.g.
- g_socket_get_credentials().
- Some operating systems supports securely sending and receiving
- credentials over a Unix Domain Socket, see
- #GUnixCredentialsMessage, g_unix_connection_send_credentials() and
- g_unix_connection_receive_credentials() for details.
- On Linux, the native credential type is a struct ucred - see the
- unix(7) man page for details. This corresponds to
- %G_CREDENTIALS_TYPE_LINUX_UCRED.
- On FreeBSD, Debian GNU/kFreeBSD, and GNU/Hurd, the native
- credential type is a struct cmsgcred. This corresponds
- to %G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED.
- On NetBSD, the native credential type is a struct unpcbid.
- This corresponds to %G_CREDENTIALS_TYPE_NETBSD_UNPCBID.
- On OpenBSD, the native credential type is a struct sockpeercred.
- This corresponds to %G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED.
- On Solaris (including OpenSolaris and its derivatives), the native
- credential type is a ucred_t. This corresponds to
- %G_CREDENTIALS_TYPE_SOLARIS_UCRED.</doc>
- <constructor name="new" c:identifier="g_credentials_new" version="2.26">
- <doc xml:space="preserve">Creates a new #GCredentials object with credentials matching the
- the current process.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GCredentials. Free with g_object_unref().</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </return-value>
- </constructor>
- <method name="get_native"
- c:identifier="g_credentials_get_native"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Gets a pointer to native credentials of type @native_type from
- @credentials.
- It is a programming error (which will cause an warning to be
- logged) to use this method if there is no #GCredentials support for
- the OS or if @native_type isn't supported by the OS.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The pointer to native credentials or %NULL if the
- operation there is no #GCredentials support for the OS or if
- @native_type isn't supported by the OS. Do not free the returned
- data, it is owned by @credentials.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- <parameter name="native_type" transfer-ownership="none">
- <doc xml:space="preserve">The type of native credentials to get.</doc>
- <type name="CredentialsType" c:type="GCredentialsType"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_unix_pid"
- c:identifier="g_credentials_get_unix_pid"
- version="2.36"
- throws="1">
- <doc xml:space="preserve">Tries to get the UNIX process identifier from @credentials. This
- method is only available on UNIX platforms.
- This operation can fail if #GCredentials is not supported on the
- OS or if the native credentials type does not contain information
- about the UNIX process ID.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The UNIX process ID, or -1 if @error is set.</doc>
- <type name="gint" c:type="pid_t"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_unix_user"
- c:identifier="g_credentials_get_unix_user"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Tries to get the UNIX user identifier from @credentials. This
- method is only available on UNIX platforms.
- This operation can fail if #GCredentials is not supported on the
- OS or if the native credentials type does not contain information
- about the UNIX user.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The UNIX user identifier or -1 if @error is set.</doc>
- <type name="guint" c:type="uid_t"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_same_user"
- c:identifier="g_credentials_is_same_user"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Checks if @credentials and @other_credentials is the same user.
- This operation can fail if #GCredentials is not supported on the
- the OS.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @credentials and @other_credentials has the same
- user, %FALSE otherwise or if @error is set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- <parameter name="other_credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_native"
- c:identifier="g_credentials_set_native"
- version="2.26">
- <doc xml:space="preserve">Copies the native credentials of type @native_type from @native
- into @credentials.
- It is a programming error (which will cause an warning to be
- logged) to use this method if there is no #GCredentials support for
- the OS or if @native_type isn't supported by the OS.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- <parameter name="native_type" transfer-ownership="none">
- <doc xml:space="preserve">The type of native credentials to set.</doc>
- <type name="CredentialsType" c:type="GCredentialsType"/>
- </parameter>
- <parameter name="native" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to native credentials.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_unix_user"
- c:identifier="g_credentials_set_unix_user"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Tries to set the UNIX user identifier on @credentials. This method
- is only available on UNIX platforms.
- This operation can fail if #GCredentials is not supported on the
- OS or if the native credentials type does not contain information
- about the UNIX user. It can also fail if the OS does not allow the
- use of "spoofed" credentials.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @uid was set, %FALSE if error is set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- <parameter name="uid" transfer-ownership="none">
- <doc xml:space="preserve">The UNIX user identifier to set.</doc>
- <type name="guint" c:type="uid_t"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="g_credentials_to_string"
- version="2.26">
- <doc xml:space="preserve">Creates a human-readable textual representation of @credentials
- that can be used in logging and debug messages. The format of the
- returned string may change in future GLib release.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A string that should be freed with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials object.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </instance-parameter>
- </parameters>
- </method>
- </class>
- <record name="CredentialsClass"
- c:type="GCredentialsClass"
- disguised="1"
- glib:is-gtype-struct-for="Credentials"
- version="2.26">
- <doc xml:space="preserve">Class structure for #GCredentials.</doc>
- </record>
- <enumeration name="CredentialsType"
- version="2.26"
- glib:type-name="GCredentialsType"
- glib:get-type="g_credentials_type_get_type"
- c:type="GCredentialsType">
- <doc xml:space="preserve">Enumeration describing different kinds of native credential types.</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_CREDENTIALS_TYPE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">Indicates an invalid native credential type.</doc>
- </member>
- <member name="linux_ucred"
- value="1"
- c:identifier="G_CREDENTIALS_TYPE_LINUX_UCRED"
- glib:nick="linux-ucred">
- <doc xml:space="preserve">The native credentials type is a struct ucred.</doc>
- </member>
- <member name="freebsd_cmsgcred"
- value="2"
- c:identifier="G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED"
- glib:nick="freebsd-cmsgcred">
- <doc xml:space="preserve">The native credentials type is a struct cmsgcred.</doc>
- </member>
- <member name="openbsd_sockpeercred"
- value="3"
- c:identifier="G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED"
- glib:nick="openbsd-sockpeercred">
- <doc xml:space="preserve">The native credentials type is a struct sockpeercred. Added in 2.30.</doc>
- </member>
- <member name="solaris_ucred"
- value="4"
- c:identifier="G_CREDENTIALS_TYPE_SOLARIS_UCRED"
- glib:nick="solaris-ucred">
- <doc xml:space="preserve">The native credentials type is a ucred_t. Added in 2.40.</doc>
- </member>
- <member name="netbsd_unpcbid"
- value="5"
- c:identifier="G_CREDENTIALS_TYPE_NETBSD_UNPCBID"
- glib:nick="netbsd-unpcbid">
- <doc xml:space="preserve">The native credentials type is a struct unpcbid.</doc>
- </member>
- </enumeration>
- <class name="DBusActionGroup"
- c:symbol-prefix="dbus_action_group"
- c:type="GDBusActionGroup"
- parent="GObject.Object"
- glib:type-name="GDBusActionGroup"
- glib:get-type="g_dbus_action_group_get_type">
- <doc xml:space="preserve">#GDBusActionGroup is an implementation of the #GActionGroup
- interface that can be used as a proxy for an action group
- that is exported over D-Bus with g_dbus_connection_export_action_group().</doc>
- <implements name="ActionGroup"/>
- <implements name="RemoteActionGroup"/>
- <function name="get"
- c:identifier="g_dbus_action_group_get"
- version="2.32">
- <doc xml:space="preserve">Obtains a #GDBusActionGroup for the action group which is exported at
- the given @bus_name and @object_path.
- The thread default main context is taken at the time of this call.
- All signals on the menu model (and any linked models) are reported
- with respect to this context. All calls on the returned menu model
- (and linked models) must also originate from this same context, with
- the thread default main context unchanged.
- This call is non-blocking. The returned action group may or may not
- already be filled in. The correct thing to do is connect the signals
- for the action group to monitor for changes and then to call
- g_action_group_list_actions() to get the initial list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusActionGroup</doc>
- <type name="DBusActionGroup" c:type="GDBusActionGroup*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="bus_name" transfer-ownership="none">
- <doc xml:space="preserve">the bus name which exports the action group</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">the object path at which the action group is exported</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </class>
- <record name="DBusAnnotationInfo"
- c:type="GDBusAnnotationInfo"
- version="2.26"
- glib:type-name="GDBusAnnotationInfo"
- glib:get-type="g_dbus_annotation_info_get_type"
- c:symbol-prefix="dbus_annotation_info">
- <doc xml:space="preserve">Information about an annotation.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="key" writable="1">
- <doc xml:space="preserve">The name of the annotation, e.g. "org.freedesktop.DBus.Deprecated".</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="value" writable="1">
- <doc xml:space="preserve">The value of the annotation.</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <method name="ref"
- c:identifier="g_dbus_annotation_info_ref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusNodeInfo</doc>
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_dbus_annotation_info_unref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusAnnotationInfo.</doc>
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="lookup"
- c:identifier="g_dbus_annotation_info_lookup"
- version="2.26">
- <doc xml:space="preserve">Looks up the value of an annotation.
- The cost of this function is O(n) in number of annotations.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value or %NULL if not found. Do not free, it is owned by @annotations.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="annotations"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A %NULL-terminated array of annotations or %NULL.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the annotation to look up.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <record name="DBusArgInfo"
- c:type="GDBusArgInfo"
- version="2.26"
- glib:type-name="GDBusArgInfo"
- glib:get-type="g_dbus_arg_info_get_type"
- c:symbol-prefix="dbus_arg_info">
- <doc xml:space="preserve">Information about an argument for a method or a signal.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">Name of the argument, e.g. @unix_user_id.</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="signature" writable="1">
- <doc xml:space="preserve">D-Bus signature of the argument (a single complete type).</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <method name="ref" c:identifier="g_dbus_arg_info_ref" version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusArgInfo" c:type="GDBusArgInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusArgInfo</doc>
- <type name="DBusArgInfo" c:type="GDBusArgInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="g_dbus_arg_info_unref" version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusArgInfo.</doc>
- <type name="DBusArgInfo" c:type="GDBusArgInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="DBusAuthObserver"
- c:symbol-prefix="dbus_auth_observer"
- c:type="GDBusAuthObserver"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GDBusAuthObserver"
- glib:get-type="g_dbus_auth_observer_get_type">
- <doc xml:space="preserve">The #GDBusAuthObserver type provides a mechanism for participating
- in how a #GDBusServer (or a #GDBusConnection) authenticates remote
- peers. Simply instantiate a #GDBusAuthObserver and connect to the
- signals you are interested in. Note that new signals may be added
- in the future
- ## Controlling Authentication # {#auth-observer}
- For example, if you only want to allow D-Bus connections from
- processes owned by the same uid as the server, you would use a
- signal handler like the following:
- |[<!-- language="C" -->
- static gboolean
- on_authorize_authenticated_peer (GDBusAuthObserver *observer,
- GIOStream *stream,
- GCredentials *credentials,
- gpointer user_data)
- {
- gboolean authorized;
- authorized = FALSE;
- if (credentials != NULL)
- {
- GCredentials *own_credentials;
- own_credentials = g_credentials_new ();
- if (g_credentials_is_same_user (credentials, own_credentials, NULL))
- authorized = TRUE;
- g_object_unref (own_credentials);
- }
- return authorized;
- }
- ]|</doc>
- <constructor name="new"
- c:identifier="g_dbus_auth_observer_new"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GDBusAuthObserver object.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusAuthObserver. Free with g_object_unref().</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </return-value>
- </constructor>
- <method name="allow_mechanism"
- c:identifier="g_dbus_auth_observer_allow_mechanism"
- version="2.34">
- <doc xml:space="preserve">Emits the #GDBusAuthObserver::allow-mechanism signal on @observer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mechanism can be used to authenticate the other peer, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="observer" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusAuthObserver.</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </instance-parameter>
- <parameter name="mechanism" transfer-ownership="none">
- <doc xml:space="preserve">The name of the mechanism, e.g. `DBUS_COOKIE_SHA1`.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="authorize_authenticated_peer"
- c:identifier="g_dbus_auth_observer_authorize_authenticated_peer"
- version="2.26">
- <doc xml:space="preserve">Emits the #GDBusAuthObserver::authorize-authenticated-peer signal on @observer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the peer is authorized, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="observer" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusAuthObserver.</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </instance-parameter>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GIOStream for the #GDBusConnection.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="credentials"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Credentials received from the peer or %NULL.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="allow-mechanism" when="last" version="2.34">
- <doc xml:space="preserve">Emitted to check if @mechanism is allowed to be used.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mechanism can be used to authenticate the other peer, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mechanism" transfer-ownership="none">
- <doc xml:space="preserve">The name of the mechanism, e.g. `DBUS_COOKIE_SHA1`.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="authorize-authenticated-peer"
- when="last"
- version="2.26">
- <doc xml:space="preserve">Emitted to check if a peer that is successfully authenticated
- is authorized.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the peer is authorized, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GIOStream for the #GDBusConnection.</doc>
- <type name="IOStream"/>
- </parameter>
- <parameter name="credentials"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Credentials received from the peer or %NULL.</doc>
- <type name="Credentials"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <bitfield name="DBusCallFlags"
- version="2.26"
- glib:type-name="GDBusCallFlags"
- glib:get-type="g_dbus_call_flags_get_type"
- c:type="GDBusCallFlags">
- <doc xml:space="preserve">Flags used in g_dbus_connection_call() and similar APIs.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_CALL_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="no_auto_start"
- value="1"
- c:identifier="G_DBUS_CALL_FLAGS_NO_AUTO_START"
- glib:nick="no-auto-start">
- <doc xml:space="preserve">The bus must not launch
- an owner for the destination name in response to this method
- invocation.</doc>
- </member>
- <member name="allow_interactive_authorization"
- value="2"
- c:identifier="G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION"
- glib:nick="allow-interactive-authorization">
- <doc xml:space="preserve">the caller is prepared to
- wait for interactive authorization. Since 2.46.</doc>
- </member>
- </bitfield>
- <bitfield name="DBusCapabilityFlags"
- version="2.26"
- glib:type-name="GDBusCapabilityFlags"
- glib:get-type="g_dbus_capability_flags_get_type"
- c:type="GDBusCapabilityFlags">
- <doc xml:space="preserve">Capabilities negotiated with the remote peer.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_CAPABILITY_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="unix_fd_passing"
- value="1"
- c:identifier="G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING"
- glib:nick="unix-fd-passing">
- <doc xml:space="preserve">The connection
- supports exchanging UNIX file descriptors with the remote peer.</doc>
- </member>
- </bitfield>
- <class name="DBusConnection"
- c:symbol-prefix="dbus_connection"
- c:type="GDBusConnection"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GDBusConnection"
- glib:get-type="g_dbus_connection_get_type">
- <doc xml:space="preserve">The #GDBusConnection type is used for D-Bus connections to remote
- peers such as a message buses. It is a low-level API that offers a
- lot of flexibility. For instance, it lets you establish a connection
- over any transport that can by represented as an #GIOStream.
- This class is rarely used directly in D-Bus clients. If you are writing
- a D-Bus client, it is often easier to use the g_bus_own_name(),
- g_bus_watch_name() or g_dbus_proxy_new_for_bus() APIs.
- As an exception to the usual GLib rule that a particular object must not
- be used by two threads at the same time, #GDBusConnection's methods may be
- called from any thread. This is so that g_bus_get() and g_bus_get_sync()
- can safely return the same #GDBusConnection when called from any thread.
- Most of the ways to obtain a #GDBusConnection automatically initialize it
- (i.e. connect to D-Bus): for instance, g_dbus_connection_new() and
- g_bus_get(), and the synchronous versions of those methods, give you an
- initialized connection. Language bindings for GIO should use
- g_initable_new() or g_async_initable_new_async(), which also initialize the
- connection.
- If you construct an uninitialized #GDBusConnection, such as via
- g_object_new(), you must initialize it via g_initable_init() or
- g_async_initable_init_async() before using its methods or properties.
- Calling methods or accessing properties on a #GDBusConnection that has not
- completed initialization successfully is considered to be invalid, and leads
- to undefined behaviour. In particular, if initialization fails with a
- #GError, the only valid thing you can do with that #GDBusConnection is to
- free it with g_object_unref().
- ## An example D-Bus server # {#gdbus-server}
- Here is an example for a D-Bus server:
- [gdbus-example-server.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-example-server.c)
- ## An example for exporting a subtree # {#gdbus-subtree-server}
- Here is an example for exporting a subtree:
- [gdbus-example-subtree.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-example-subtree.c)
- ## An example for file descriptor passing # {#gdbus-unix-fd-client}
- Here is an example for passing UNIX file descriptors:
- [gdbus-unix-fd-client.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-unix-fd-client.c)
- ## An example for exporting a GObject # {#gdbus-export}
- Here is an example for exporting a #GObject:
- [gdbus-example-export.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-example-export.c)</doc>
- <implements name="AsyncInitable"/>
- <implements name="Initable"/>
- <constructor name="new_finish"
- c:identifier="g_dbus_connection_new_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_new().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusConnection or %NULL if @error is set. Free
- with g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback
- passed to g_dbus_connection_new().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_for_address_finish"
- c:identifier="g_dbus_connection_new_for_address_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_new_for_address().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusConnection or %NULL if @error is set. Free with
- g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- to g_dbus_connection_new()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_for_address_sync"
- c:identifier="g_dbus_connection_new_for_address_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously connects and sets up a D-Bus client connection for
- exchanging D-Bus messages with an endpoint specified by @address
- which must be in the D-Bus address format.
- This constructor can only be used to initiate client-side
- connections - use g_dbus_connection_new_sync() if you need to act
- as the server. In particular, @flags cannot contain the
- %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
- %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
- This is a synchronous failable constructor. See
- g_dbus_connection_new_for_address() for the asynchronous version.
- If @observer is not %NULL it may be used to control the
- authentication process.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusConnection or %NULL if @error is set. Free with
- g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a D-Bus address</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags describing how to make the connection</doc>
- <type name="DBusConnectionFlags" c:type="GDBusConnectionFlags"/>
- </parameter>
- <parameter name="observer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GDBusAuthObserver or %NULL</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sync"
- c:identifier="g_dbus_connection_new_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously sets up a D-Bus connection for exchanging D-Bus messages
- with the end represented by @stream.
- If @stream is a #GSocketConnection, then the corresponding #GSocket
- will be put into non-blocking mode.
- The D-Bus connection will interact with @stream from a worker thread.
- As a result, the caller should not interact with @stream after this
- method has been called, except by calling g_object_unref() on it.
- If @observer is not %NULL it may be used to control the
- authentication process.
- This is a synchronous failable constructor. See
- g_dbus_connection_new() for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusConnection or %NULL if @error is set. Free with g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="guid"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the GUID to use if a authenticating as a server or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags describing how to make the connection</doc>
- <type name="DBusConnectionFlags" c:type="GDBusConnectionFlags"/>
- </parameter>
- <parameter name="observer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GDBusAuthObserver or %NULL</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="new" c:identifier="g_dbus_connection_new" version="2.26">
- <doc xml:space="preserve">Asynchronously sets up a D-Bus connection for exchanging D-Bus messages
- with the end represented by @stream.
- If @stream is a #GSocketConnection, then the corresponding #GSocket
- will be put into non-blocking mode.
- The D-Bus connection will interact with @stream from a worker thread.
- As a result, the caller should not interact with @stream after this
- method has been called, except by calling g_object_unref() on it.
- If @observer is not %NULL it may be used to control the
- authentication process.
- When the operation is finished, @callback will be invoked. You can
- then call g_dbus_connection_new_finish() to get the result of the
- operation.
- This is a asynchronous failable constructor. See
- g_dbus_connection_new_sync() for the synchronous
- version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="guid"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the GUID to use if a authenticating as a server or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags describing how to make the connection</doc>
- <type name="DBusConnectionFlags" c:type="GDBusConnectionFlags"/>
- </parameter>
- <parameter name="observer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GDBusAuthObserver or %NULL</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_address"
- c:identifier="g_dbus_connection_new_for_address"
- version="2.26">
- <doc xml:space="preserve">Asynchronously connects and sets up a D-Bus client connection for
- exchanging D-Bus messages with an endpoint specified by @address
- which must be in the D-Bus address format.
- This constructor can only be used to initiate client-side
- connections - use g_dbus_connection_new() if you need to act as the
- server. In particular, @flags cannot contain the
- %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
- %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
- When the operation is finished, @callback will be invoked. You can
- then call g_dbus_connection_new_finish() to get the result of the
- operation.
- If @observer is not %NULL it may be used to control the
- authentication process.
- This is a asynchronous failable constructor. See
- g_dbus_connection_new_for_address_sync() for the synchronous
- version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a D-Bus address</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags describing how to make the connection</doc>
- <type name="DBusConnectionFlags" c:type="GDBusConnectionFlags"/>
- </parameter>
- <parameter name="observer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GDBusAuthObserver or %NULL</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <method name="add_filter"
- c:identifier="g_dbus_connection_add_filter"
- version="2.26">
- <doc xml:space="preserve">Adds a message filter. Filters are handlers that are run on all
- incoming and outgoing messages, prior to standard dispatch. Filters
- are run in the order that they were added. The same handler can be
- added as a filter more than once, in which case it will be run more
- than once. Filters added during a filter callback won't be run on
- the message being processed. Filter functions are allowed to modify
- and even drop messages.
- Note that filters are run in a dedicated message handling thread so
- they can't block and, generally, can't do anything but signal a
- worker thread. Also note that filters are rarely needed - use API
- such as g_dbus_connection_send_message_with_reply(),
- g_dbus_connection_signal_subscribe() or g_dbus_connection_call() instead.
- If a filter consumes an incoming message the message is not
- dispatched anywhere else - not even the standard dispatch machinery
- (that API such as g_dbus_connection_signal_subscribe() and
- g_dbus_connection_send_message_with_reply() relies on) will see the
- message. Similary, if a filter consumes an outgoing message, the
- message will not be sent to the other peer.
- If @user_data_free_func is non-%NULL, it will be called (in the
- thread-default main context of the thread you are calling this
- method from) at some point after @user_data is no longer
- needed. (It is not guaranteed to be called synchronously when the
- filter is removed, and may be called after @connection has been
- destroyed.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a filter identifier that can be used with
- g_dbus_connection_remove_filter()</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="filter_function"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a filter function</doc>
- <type name="DBusMessageFilterFunction"
- c:type="GDBusMessageFilterFunction"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @filter_function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">function to free @user_data with when filter
- is removed or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="call" c:identifier="g_dbus_connection_call" version="2.26">
- <doc xml:space="preserve">Asynchronously invokes the @method_name method on the
- @interface_name D-Bus interface on the remote object at
- @object_path owned by @bus_name.
- If @connection is closed then the operation will fail with
- %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
- fail with %G_IO_ERROR_CANCELLED. If @parameters contains a value
- not compatible with the D-Bus protocol, the operation fails with
- %G_IO_ERROR_INVALID_ARGUMENT.
- If @reply_type is non-%NULL then the reply will be checked for having this type and an
- error will be raised if it does not match. Said another way, if you give a @reply_type
- then any non-%NULL return value will be of this type.
- If the @parameters #GVariant is floating, it is consumed. This allows
- convenient 'inline' use of g_variant_new(), e.g.:
- |[<!-- language="C" -->
- g_dbus_connection_call (connection,
- "org.freedesktop.StringThings",
- "/org/freedesktop/StringThings",
- "org.freedesktop.StringThings",
- "TwoStrings",
- g_variant_new ("(ss)",
- "Thing One",
- "Thing Two"),
- NULL,
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- NULL,
- (GAsyncReadyCallback) two_strings_done,
- NULL);
- ]|
- This is an asynchronous method. When the operation is finished,
- @callback will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from. You can then call
- g_dbus_connection_call_finish() to get the result of the operation.
- See g_dbus_connection_call_sync() for the synchronous version of this
- function.
- If @callback is %NULL then the D-Bus method call message will be sent with
- the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="bus_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a unique or well-known bus name or %NULL if
- @connection is not a message bus connection</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">path of remote object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface to invoke method on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the method to invoke</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant tuple with parameters for the method
- or %NULL if not passing parameters</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="reply_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the reply, or %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags from the #GDBusCallFlags enumeration</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">the timeout in milliseconds, -1 to use the default
- timeout or %G_MAXINT for no timeout</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="10">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request
- is satisfied or %NULL if you don't care about the result of the
- method invocation</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_finish"
- c:identifier="g_dbus_connection_call_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_call().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_call()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_sync"
- c:identifier="g_dbus_connection_call_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously invokes the @method_name method on the
- @interface_name D-Bus interface on the remote object at
- @object_path owned by @bus_name.
- If @connection is closed then the operation will fail with
- %G_IO_ERROR_CLOSED. If @cancellable is canceled, the
- operation will fail with %G_IO_ERROR_CANCELLED. If @parameters
- contains a value not compatible with the D-Bus protocol, the operation
- fails with %G_IO_ERROR_INVALID_ARGUMENT.
- If @reply_type is non-%NULL then the reply will be checked for having
- this type and an error will be raised if it does not match. Said
- another way, if you give a @reply_type then any non-%NULL return
- value will be of this type.
- If the @parameters #GVariant is floating, it is consumed.
- This allows convenient 'inline' use of g_variant_new(), e.g.:
- |[<!-- language="C" -->
- g_dbus_connection_call_sync (connection,
- "org.freedesktop.StringThings",
- "/org/freedesktop/StringThings",
- "org.freedesktop.StringThings",
- "TwoStrings",
- g_variant_new ("(ss)",
- "Thing One",
- "Thing Two"),
- NULL,
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- NULL,
- &error);
- ]|
- The calling thread is blocked until a reply is received. See
- g_dbus_connection_call() for the asynchronous version of
- this method.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="bus_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a unique or well-known bus name or %NULL if
- @connection is not a message bus connection</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">path of remote object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface to invoke method on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the method to invoke</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant tuple with parameters for the method
- or %NULL if not passing parameters</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="reply_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the reply, or %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags from the #GDBusCallFlags enumeration</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">the timeout in milliseconds, -1 to use the default
- timeout or %G_MAXINT for no timeout</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_with_unix_fd_list"
- c:identifier="g_dbus_connection_call_with_unix_fd_list"
- version="2.30">
- <doc xml:space="preserve">Like g_dbus_connection_call() but also takes a #GUnixFDList object.
- This method is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="bus_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a unique or well-known bus name or %NULL if
- @connection is not a message bus connection</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">path of remote object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface to invoke method on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the method to invoke</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant tuple with parameters for the method
- or %NULL if not passing parameters</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="reply_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the reply, or %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags from the #GDBusCallFlags enumeration</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">the timeout in milliseconds, -1 to use the default
- timeout or %G_MAXINT for no timeout</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="fd_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GUnixFDList or %NULL</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="11">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is
- satisfied or %NULL if you don't * care about the result of the
- method invocation</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_with_unix_fd_list_finish"
- c:identifier="g_dbus_connection_call_with_unix_fd_list_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_call_with_unix_fd_list().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="out_fd_list"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for a #GUnixFDList or %NULL</doc>
- <type name="UnixFDList" c:type="GUnixFDList**"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed to
- g_dbus_connection_call_with_unix_fd_list()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_with_unix_fd_list_sync"
- c:identifier="g_dbus_connection_call_with_unix_fd_list_sync"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Like g_dbus_connection_call_sync() but also takes and returns #GUnixFDList objects.
- This method is only available on UNIX.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="bus_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a unique or well-known bus name or %NULL
- if @connection is not a message bus connection</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">path of remote object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface to invoke method on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the method to invoke</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant tuple with parameters for
- the method or %NULL if not passing parameters</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="reply_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the reply, or %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags from the #GDBusCallFlags enumeration</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">the timeout in milliseconds, -1 to use the default
- timeout or %G_MAXINT for no timeout</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="fd_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GUnixFDList or %NULL</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- <parameter name="out_fd_list"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for a #GUnixFDList or %NULL</doc>
- <type name="UnixFDList" c:type="GUnixFDList**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close"
- c:identifier="g_dbus_connection_close"
- version="2.26">
- <doc xml:space="preserve">Closes @connection. Note that this never causes the process to
- exit (this might only happen if the other end of a shared message
- bus connection disconnects, see #GDBusConnection:exit-on-close).
- Once the connection is closed, operations such as sending a message
- will return with the error %G_IO_ERROR_CLOSED. Closing a connection
- will not automatically flush the connection so queued messages may
- be lost. Use g_dbus_connection_flush() if you need such guarantees.
- If @connection is already closed, this method fails with
- %G_IO_ERROR_CLOSED.
- When @connection has been closed, the #GDBusConnection::closed
- signal is emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread that @connection was constructed in.
- This is an asynchronous method. When the operation is finished,
- @callback will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from. You can
- then call g_dbus_connection_close_finish() to get the result of the
- operation. See g_dbus_connection_close_sync() for the synchronous
- version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is
- satisfied or %NULL if you don't care about the result</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_finish"
- c:identifier="g_dbus_connection_close_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_close().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation succeeded, %FALSE if @error is set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- to g_dbus_connection_close()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_sync"
- c:identifier="g_dbus_connection_close_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously closees @connection. The calling thread is blocked
- until this is done. See g_dbus_connection_close() for the
- asynchronous version of this method and more details about what it
- does.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation succeeded, %FALSE if @error is set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="emit_signal"
- c:identifier="g_dbus_connection_emit_signal"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Emits a signal.
- If the parameters GVariant is floating, it is consumed.
- This can only fail if @parameters is not compatible with the D-Bus protocol.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE unless @error is set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="destination_bus_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the unique bus name for the destination
- for the signal or %NULL to emit to all listeners</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">path of remote object</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface to emit a signal on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the signal to emit</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant tuple with parameters for the signal
- or %NULL if not passing parameters</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="export_action_group"
- c:identifier="g_dbus_connection_export_action_group"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Exports @action_group on @connection at @object_path.
- The implemented D-Bus API should be considered private. It is
- subject to change in the future.
- A given object path can only have one action group exported on it.
- If this constraint is violated, the export will fail and 0 will be
- returned (with @error set accordingly).
- You can unexport the action group using
- g_dbus_connection_unexport_action_group() with the return value of
- this function.
- The thread default main context is taken at the time of this call.
- All incoming action activations and state change requests are
- reported from this context. Any changes on the action group that
- cause it to emit signals must also come from this same context.
- Since incoming action activations and state change requests are
- rather likely to cause changes on the action group, this effectively
- limits a given action group to being exported from only one main
- context.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the ID of the export (never zero), or 0 in case of failure</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">a D-Bus object path</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="action_group" transfer-ownership="none">
- <doc xml:space="preserve">a #GActionGroup</doc>
- <type name="ActionGroup" c:type="GActionGroup*"/>
- </parameter>
- </parameters>
- </method>
- <method name="export_menu_model"
- c:identifier="g_dbus_connection_export_menu_model"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Exports @menu on @connection at @object_path.
- The implemented D-Bus API should be considered private.
- It is subject to change in the future.
- An object path can only have one menu model exported on it. If this
- constraint is violated, the export will fail and 0 will be
- returned (with @error set accordingly).
- You can unexport the menu model using
- g_dbus_connection_unexport_menu_model() with the return value of
- this function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the ID of the export (never zero), or 0 in case of failure</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">a D-Bus object path</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush"
- c:identifier="g_dbus_connection_flush"
- version="2.26">
- <doc xml:space="preserve">Asynchronously flushes @connection, that is, writes all queued
- outgoing message to the transport and then flushes the transport
- (using g_output_stream_flush_async()). This is useful in programs
- that wants to emit a D-Bus signal and then exit immediately. Without
- flushing the connection, there is no guaranteed that the message has
- been sent to the networking buffers in the OS kernel.
- This is an asynchronous method. When the operation is finished,
- @callback will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from. You can
- then call g_dbus_connection_flush_finish() to get the result of the
- operation. See g_dbus_connection_flush_sync() for the synchronous
- version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied or %NULL if you don't care about the result</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush_finish"
- c:identifier="g_dbus_connection_flush_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_flush().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation succeeded, %FALSE if @error is set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- to g_dbus_connection_flush()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush_sync"
- c:identifier="g_dbus_connection_flush_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously flushes @connection. The calling thread is blocked
- until this is done. See g_dbus_connection_flush() for the
- asynchronous version of this method and more details about what it
- does.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation succeeded, %FALSE if @error is set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_capabilities"
- c:identifier="g_dbus_connection_get_capabilities"
- version="2.26">
- <doc xml:space="preserve">Gets the capabilities negotiated with the remote peer</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">zero or more flags from the #GDBusCapabilityFlags enumeration</doc>
- <type name="DBusCapabilityFlags" c:type="GDBusCapabilityFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_exit_on_close"
- c:identifier="g_dbus_connection_get_exit_on_close"
- version="2.26">
- <doc xml:space="preserve">Gets whether the process is terminated when @connection is
- closed by the remote peer. See
- #GDBusConnection:exit-on-close for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the process is terminated when @connection is
- closed by the remote peer</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_guid"
- c:identifier="g_dbus_connection_get_guid"
- version="2.26">
- <doc xml:space="preserve">The GUID of the peer performing the role of server when
- authenticating. See #GDBusConnection:guid for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The GUID. Do not free this string, it is owned by
- @connection.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_last_serial"
- c:identifier="g_dbus_connection_get_last_serial"
- version="2.34">
- <doc xml:space="preserve">Retrieves the last serial number assigned to a #GDBusMessage on
- the current thread. This includes messages sent via both low-level
- API such as g_dbus_connection_send_message() as well as
- high-level API such as g_dbus_connection_emit_signal(),
- g_dbus_connection_call() or g_dbus_proxy_call().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the last used serial or zero when no message has been sent
- within the current thread</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_peer_credentials"
- c:identifier="g_dbus_connection_get_peer_credentials"
- version="2.26">
- <doc xml:space="preserve">Gets the credentials of the authenticated peer. This will always
- return %NULL unless @connection acted as a server
- (e.g. %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER was passed)
- when set up and the client passed credentials as part of the
- authentication process.
- In a message bus setup, the message bus is always the server and
- each application is a client. So this method will always return
- %NULL for message bus clients.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a #GCredentials or %NULL if not
- available. Do not free this object, it is owned by @connection.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_stream"
- c:identifier="g_dbus_connection_get_stream"
- version="2.26">
- <doc xml:space="preserve">Gets the underlying stream used for IO.
- While the #GDBusConnection is active, it will interact with this
- stream from a worker thread, so it is not safe to interact with
- the stream directly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the stream used for IO</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_unique_name"
- c:identifier="g_dbus_connection_get_unique_name"
- version="2.26">
- <doc xml:space="preserve">Gets the unique name of @connection as assigned by the message
- bus. This can also be used to figure out if @connection is a
- message bus connection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the unique name or %NULL if @connection is not a message
- bus connection. Do not free this string, it is owned by
- @connection.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closed"
- c:identifier="g_dbus_connection_is_closed"
- version="2.26">
- <doc xml:space="preserve">Gets whether @connection is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the connection is closed, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="register_object"
- c:identifier="g_dbus_connection_register_object"
- shadowed-by="register_object_with_closures"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Registers callbacks for exported objects at @object_path with the
- D-Bus interface that is described in @interface_info.
- Calls to functions in @vtable (and @user_data_free_func) will happen
- in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from.
- Note that all #GVariant values passed to functions in @vtable will match
- the signature given in @interface_info - if a remote caller passes
- incorrect values, the `org.freedesktop.DBus.Error.InvalidArgs`
- is returned to the remote caller.
- Additionally, if the remote caller attempts to invoke methods or
- access properties not mentioned in @interface_info the
- `org.freedesktop.DBus.Error.UnknownMethod` resp.
- `org.freedesktop.DBus.Error.InvalidArgs` errors
- are returned to the caller.
- It is considered a programming error if the
- #GDBusInterfaceGetPropertyFunc function in @vtable returns a
- #GVariant of incorrect type.
- If an existing callback is already registered at @object_path and
- @interface_name, then @error is set to #G_IO_ERROR_EXISTS.
- GDBus automatically implements the standard D-Bus interfaces
- org.freedesktop.DBus.Properties, org.freedesktop.DBus.Introspectable
- and org.freedesktop.Peer, so you don't have to implement those for the
- objects you export. You can implement org.freedesktop.DBus.Properties
- yourself, e.g. to handle getting and setting of properties asynchronously.
- Note that the reference count on @interface_info will be
- incremented by 1 (unless allocated statically, e.g. if the
- reference count is -1, see g_dbus_interface_info_ref()) for as long
- as the object is exported. Also note that @vtable will be copied.
- See this [server][gdbus-server] for an example of how to use this method.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if @error is set, otherwise a registration id (never 0)
- that can be used with g_dbus_connection_unregister_object()</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">the object path to register at</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_info" transfer-ownership="none">
- <doc xml:space="preserve">introspection data for the interface</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- <parameter name="vtable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GDBusInterfaceVTable to call into or %NULL</doc>
- <type name="DBusInterfaceVTable"
- c:type="const GDBusInterfaceVTable*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to functions in @vtable</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">function to call when the object path is unregistered</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="register_object_with_closures"
- c:identifier="g_dbus_connection_register_object_with_closures"
- shadows="register_object"
- version="2.46"
- throws="1">
- <doc xml:space="preserve">Version of g_dbus_connection_register_object() using closures instead of a
- #GDBusInterfaceVTable for easier binding in other languages.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if @error is set, otherwise a registration id (never 0)
- that can be used with g_dbus_connection_unregister_object() .</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path to register at.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_info" transfer-ownership="none">
- <doc xml:space="preserve">Introspection data for the interface.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- <parameter name="method_call_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure for handling incoming method calls.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="get_property_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure for getting a property.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="set_property_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure for setting a property.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="register_subtree"
- c:identifier="g_dbus_connection_register_subtree"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Registers a whole subtree of dynamic objects.
- The @enumerate and @introspection functions in @vtable are used to
- convey, to remote callers, what nodes exist in the subtree rooted
- by @object_path.
- When handling remote calls into any node in the subtree, first the
- @enumerate function is used to check if the node exists. If the node exists
- or the #G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is set
- the @introspection function is used to check if the node supports the
- requested method. If so, the @dispatch function is used to determine
- where to dispatch the call. The collected #GDBusInterfaceVTable and
- #gpointer will be used to call into the interface vtable for processing
- the request.
- All calls into user-provided code will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from.
- If an existing subtree is already registered at @object_path or
- then @error is set to #G_IO_ERROR_EXISTS.
- Note that it is valid to register regular objects (using
- g_dbus_connection_register_object()) in a subtree registered with
- g_dbus_connection_register_subtree() - if so, the subtree handler
- is tried as the last resort. One way to think about a subtree
- handler is to consider it a fallback handler for object paths not
- registered via g_dbus_connection_register_object() or other bindings.
- Note that @vtable will be copied so you cannot change it after
- registration.
- See this [server][gdbus-subtree-server] for an example of how to use
- this method.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if @error is set, otherwise a subtree registration id (never 0)
- that can be used with g_dbus_connection_unregister_subtree() .</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">the object path to register the subtree at</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="vtable" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusSubtreeVTable to enumerate, introspect and
- dispatch nodes in the subtree</doc>
- <type name="DBusSubtreeVTable" c:type="const GDBusSubtreeVTable*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags used to fine tune the behavior of the subtree</doc>
- <type name="DBusSubtreeFlags" c:type="GDBusSubtreeFlags"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to functions in @vtable</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">function to call when the subtree is unregistered</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_filter"
- c:identifier="g_dbus_connection_remove_filter"
- version="2.26">
- <doc xml:space="preserve">Removes a filter.
- Note that since filters run in a different thread, there is a race
- condition where it is possible that the filter will be running even
- after calling g_dbus_connection_remove_filter(), so you cannot just
- free data that the filter might be using. Instead, you should pass
- a #GDestroyNotify to g_dbus_connection_add_filter(), which will be
- called when it is guaranteed that the data is no longer needed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="filter_id" transfer-ownership="none">
- <doc xml:space="preserve">an identifier obtained from g_dbus_connection_add_filter()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_message"
- c:identifier="g_dbus_connection_send_message"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Asynchronously sends @message to the peer represented by @connection.
- Unless @flags contain the
- %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
- will be assigned by @connection and set on @message via
- g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- serial number used will be written to this location prior to
- submitting the message to the underlying transport.
- If @connection is closed then the operation will fail with
- %G_IO_ERROR_CLOSED. If @message is not well-formed,
- the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
- See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- for an example of how to use this low-level API to send and receive
- UNIX file descriptors.
- Note that @message must be unlocked, unless @flags contain the
- %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message was well-formed and queued for
- transmission, %FALSE if @error is set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusMessage</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting how the message is sent</doc>
- <type name="DBusSendMessageFlags" c:type="GDBusSendMessageFlags"/>
- </parameter>
- <parameter name="out_serial"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for serial number assigned
- to @message when sending it or %NULL</doc>
- <type name="guint32" c:type="volatile guint32*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_message_with_reply"
- c:identifier="g_dbus_connection_send_message_with_reply"
- version="2.26">
- <doc xml:space="preserve">Asynchronously sends @message to the peer represented by @connection.
- Unless @flags contain the
- %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
- will be assigned by @connection and set on @message via
- g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- serial number used will be written to this location prior to
- submitting the message to the underlying transport.
- If @connection is closed then the operation will fail with
- %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
- fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed,
- the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
- This is an asynchronous method. When the operation is finished, @callback
- will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from. You can then call
- g_dbus_connection_send_message_with_reply_finish() to get the result of the operation.
- See g_dbus_connection_send_message_with_reply_sync() for the synchronous version.
- Note that @message must be unlocked, unless @flags contain the
- %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
- See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- for an example of how to use this low-level API to send and receive
- UNIX file descriptors.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusMessage</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting how the message is sent</doc>
- <type name="DBusSendMessageFlags" c:type="GDBusSendMessageFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">the timeout in milliseconds, -1 to use the default
- timeout or %G_MAXINT for no timeout</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="out_serial"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for serial number assigned
- to @message when sending it or %NULL</doc>
- <type name="guint32" c:type="volatile guint32*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request
- is satisfied or %NULL if you don't care about the result</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_message_with_reply_finish"
- c:identifier="g_dbus_connection_send_message_with_reply_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_connection_send_message_with_reply().
- Note that @error is only set if a local in-process error
- occurred. That is to say that the returned #GDBusMessage object may
- be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use
- g_dbus_message_to_gerror() to transcode this to a #GError.
- See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- for an example of how to use this low-level API to send and receive
- UNIX file descriptors.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a locked #GDBusMessage or %NULL if @error is set</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed to
- g_dbus_connection_send_message_with_reply()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_message_with_reply_sync"
- c:identifier="g_dbus_connection_send_message_with_reply_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously sends @message to the peer represented by @connection
- and blocks the calling thread until a reply is received or the
- timeout is reached. See g_dbus_connection_send_message_with_reply()
- for the asynchronous version of this method.
- Unless @flags contain the
- %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
- will be assigned by @connection and set on @message via
- g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- serial number used will be written to this location prior to
- submitting the message to the underlying transport.
- If @connection is closed then the operation will fail with
- %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
- fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed,
- the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
- Note that @error is only set if a local in-process error
- occurred. That is to say that the returned #GDBusMessage object may
- be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use
- g_dbus_message_to_gerror() to transcode this to a #GError.
- See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- for an example of how to use this low-level API to send and receive
- UNIX file descriptors.
- Note that @message must be unlocked, unless @flags contain the
- %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a locked #GDBusMessage that is the reply
- to @message or %NULL if @error is set</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusMessage</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting how the message is sent.</doc>
- <type name="DBusSendMessageFlags" c:type="GDBusSendMessageFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">the timeout in milliseconds, -1 to use the default
- timeout or %G_MAXINT for no timeout</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="out_serial"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for serial number
- assigned to @message when sending it or %NULL</doc>
- <type name="guint32" c:type="volatile guint32*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_exit_on_close"
- c:identifier="g_dbus_connection_set_exit_on_close"
- version="2.26">
- <doc xml:space="preserve">Sets whether the process should be terminated when @connection is
- closed by the remote peer. See #GDBusConnection:exit-on-close for
- more details.
- Note that this function should be used with care. Most modern UNIX
- desktops tie the notion of a user session the session bus, and expect
- all of a users applications to quit when their bus connection goes away.
- If you are setting @exit_on_close to %FALSE for the shared session
- bus connection, you should make sure that your application exits
- when the user session ends.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="exit_on_close" transfer-ownership="none">
- <doc xml:space="preserve">whether the process should be terminated
- when @connection is closed by the remote peer</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="signal_subscribe"
- c:identifier="g_dbus_connection_signal_subscribe"
- version="2.26">
- <doc xml:space="preserve">Subscribes to signals on @connection and invokes @callback with a whenever
- the signal is received. Note that @callback will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from.
- If @connection is not a message bus connection, @sender must be
- %NULL.
- If @sender is a well-known name note that @callback is invoked with
- the unique name for the owner of @sender, not the well-known name
- as one would expect. This is because the message bus rewrites the
- name. As such, to avoid certain race conditions, users should be
- tracking the name owner of the well-known name and use that when
- processing the received signal.
- If one of %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE or
- %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH are given, @arg0 is
- interpreted as part of a namespace or path. The first argument
- of a signal is matched against that part as specified by D-Bus.
- If @user_data_free_func is non-%NULL, it will be called (in the
- thread-default main context of the thread you are calling this
- method from) at some point after @user_data is no longer
- needed. (It is not guaranteed to be called synchronously when the
- signal is unsubscribed from, and may be called after @connection
- has been destroyed.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a subscription identifier that can be used with g_dbus_connection_signal_unsubscribe()</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="sender"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">sender name to match on (unique or well-known name)
- or %NULL to listen from all senders</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">D-Bus interface name to match on or %NULL to
- match on all interfaces</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="member"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">D-Bus signal name to match on or %NULL to match on
- all signals</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">object path to match on or %NULL to match on
- all object paths</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="arg0"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">contents of first string argument to match on or %NULL
- to match on all kinds of arguments</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GDBusSignalFlags describing how arg0 is used in subscribing to the
- signal</doc>
- <type name="DBusSignalFlags" c:type="GDBusSignalFlags"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="7"
- destroy="8">
- <doc xml:space="preserve">callback to invoke when there is a signal matching the requested data</doc>
- <type name="DBusSignalCallback" c:type="GDBusSignalCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">function to free @user_data with when
- subscription is removed or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="signal_unsubscribe"
- c:identifier="g_dbus_connection_signal_unsubscribe"
- version="2.26">
- <doc xml:space="preserve">Unsubscribes from signals.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="subscription_id" transfer-ownership="none">
- <doc xml:space="preserve">a subscription id obtained from
- g_dbus_connection_signal_subscribe()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="start_message_processing"
- c:identifier="g_dbus_connection_start_message_processing"
- version="2.26">
- <doc xml:space="preserve">If @connection was created with
- %G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING, this method
- starts processing messages. Does nothing on if @connection wasn't
- created with this flag or if the method has already been called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unexport_action_group"
- c:identifier="g_dbus_connection_unexport_action_group"
- version="2.32">
- <doc xml:space="preserve">Reverses the effect of a previous call to
- g_dbus_connection_export_action_group().
- It is an error to call this function with an ID that wasn't returned
- from g_dbus_connection_export_action_group() or to call it with the
- same ID more than once.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="export_id" transfer-ownership="none">
- <doc xml:space="preserve">the ID from g_dbus_connection_export_action_group()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="unexport_menu_model"
- c:identifier="g_dbus_connection_unexport_menu_model"
- version="2.32">
- <doc xml:space="preserve">Reverses the effect of a previous call to
- g_dbus_connection_export_menu_model().
- It is an error to call this function with an ID that wasn't returned
- from g_dbus_connection_export_menu_model() or to call it with the
- same ID more than once.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="export_id" transfer-ownership="none">
- <doc xml:space="preserve">the ID from g_dbus_connection_export_menu_model()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="unregister_object"
- c:identifier="g_dbus_connection_unregister_object"
- version="2.26">
- <doc xml:space="preserve">Unregisters an object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the object was unregistered, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="registration_id" transfer-ownership="none">
- <doc xml:space="preserve">a registration id obtained from
- g_dbus_connection_register_object()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="unregister_subtree"
- c:identifier="g_dbus_connection_unregister_subtree"
- version="2.26">
- <doc xml:space="preserve">Unregisters a subtree.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the subtree was unregistered, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </instance-parameter>
- <parameter name="registration_id" transfer-ownership="none">
- <doc xml:space="preserve">a subtree registration id obtained from
- g_dbus_connection_register_subtree()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <property name="address"
- version="2.26"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus address specifying potential endpoints that can be used
- when establishing the connection.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="authentication-observer"
- version="2.26"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusAuthObserver object to assist in the authentication process or %NULL.</doc>
- <type name="DBusAuthObserver"/>
- </property>
- <property name="capabilities" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusCapabilityFlags enumeration
- representing connection features negotiated with the other peer.</doc>
- <type name="DBusCapabilityFlags"/>
- </property>
- <property name="closed" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">A boolean specifying whether the connection has been closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="exit-on-close"
- version="2.26"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A boolean specifying whether the process will be terminated (by
- calling `raise(SIGTERM)`) if the connection is closed by the
- remote peer.
- Note that #GDBusConnection objects returned by g_bus_get_finish()
- and g_bus_get_sync() will (usually) have this property set to %TRUE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="flags"
- version="2.26"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusConnectionFlags enumeration.</doc>
- <type name="DBusConnectionFlags"/>
- </property>
- <property name="guid"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The GUID of the peer performing the role of server when
- authenticating.
- If you are constructing a #GDBusConnection and pass
- %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER in the
- #GDBusConnection:flags property then you MUST also set this
- property to a valid guid.
- If you are constructing a #GDBusConnection and pass
- %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT in the
- #GDBusConnection:flags property you will be able to read the GUID
- of the other peer here after the connection has been successfully
- initialized.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="stream"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The underlying #GIOStream used for I/O.
- If this is passed on construction and is a #GSocketConnection,
- then the corresponding #GSocket will be put into non-blocking mode.
- While the #GDBusConnection is active, it will interact with this
- stream from a worker thread, so it is not safe to interact with
- the stream directly.</doc>
- <type name="IOStream"/>
- </property>
- <property name="unique-name" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">The unique name as assigned by the message bus or %NULL if the
- connection is not open or not a message bus connection.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <glib:signal name="closed" when="last" version="2.26">
- <doc xml:space="preserve">Emitted when the connection is closed.
- The cause of this event can be
- - If g_dbus_connection_close() is called. In this case
- @remote_peer_vanished is set to %FALSE and @error is %NULL.
- - If the remote peer closes the connection. In this case
- @remote_peer_vanished is set to %TRUE and @error is set.
- - If the remote peer sends invalid or malformed data. In this
- case @remote_peer_vanished is set to %FALSE and @error is set.
- Upon receiving this signal, you should give up your reference to
- @connection. You are guaranteed that this signal is emitted only
- once.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="remote_peer_vanished" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @connection is closed because the
- remote peer closed its end of the connection</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="error"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GError with more details about the event or %NULL</doc>
- <type name="GLib.Error"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <bitfield name="DBusConnectionFlags"
- version="2.26"
- glib:type-name="GDBusConnectionFlags"
- glib:get-type="g_dbus_connection_flags_get_type"
- c:type="GDBusConnectionFlags">
- <doc xml:space="preserve">Flags used when creating a new #GDBusConnection.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_CONNECTION_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="authentication_client"
- value="1"
- c:identifier="G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT"
- glib:nick="authentication-client">
- <doc xml:space="preserve">Perform authentication against server.</doc>
- </member>
- <member name="authentication_server"
- value="2"
- c:identifier="G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER"
- glib:nick="authentication-server">
- <doc xml:space="preserve">Perform authentication against client.</doc>
- </member>
- <member name="authentication_allow_anonymous"
- value="4"
- c:identifier="G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS"
- glib:nick="authentication-allow-anonymous">
- <doc xml:space="preserve">When
- authenticating as a server, allow the anonymous authentication
- method.</doc>
- </member>
- <member name="message_bus_connection"
- value="8"
- c:identifier="G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION"
- glib:nick="message-bus-connection">
- <doc xml:space="preserve">Pass this flag if connecting to a peer that is a
- message bus. This means that the Hello() method will be invoked as part of the connection setup.</doc>
- </member>
- <member name="delay_message_processing"
- value="16"
- c:identifier="G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING"
- glib:nick="delay-message-processing">
- <doc xml:space="preserve">If set, processing of D-Bus messages is
- delayed until g_dbus_connection_start_message_processing() is called.</doc>
- </member>
- </bitfield>
- <enumeration name="DBusError"
- version="2.26"
- glib:type-name="GDBusError"
- glib:get-type="g_dbus_error_get_type"
- c:type="GDBusError"
- glib:error-domain="g-dbus-error-quark">
- <doc xml:space="preserve">Error codes for the %G_DBUS_ERROR error domain.</doc>
- <member name="failed"
- value="0"
- c:identifier="G_DBUS_ERROR_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">A generic error; "something went wrong" - see the error message for
- more.</doc>
- </member>
- <member name="no_memory"
- value="1"
- c:identifier="G_DBUS_ERROR_NO_MEMORY"
- glib:nick="no-memory">
- <doc xml:space="preserve">There was not enough memory to complete an operation.</doc>
- </member>
- <member name="service_unknown"
- value="2"
- c:identifier="G_DBUS_ERROR_SERVICE_UNKNOWN"
- glib:nick="service-unknown">
- <doc xml:space="preserve">The bus doesn't know how to launch a service to supply the bus name
- you wanted.</doc>
- </member>
- <member name="name_has_no_owner"
- value="3"
- c:identifier="G_DBUS_ERROR_NAME_HAS_NO_OWNER"
- glib:nick="name-has-no-owner">
- <doc xml:space="preserve">The bus name you referenced doesn't exist (i.e. no application owns
- it).</doc>
- </member>
- <member name="no_reply"
- value="4"
- c:identifier="G_DBUS_ERROR_NO_REPLY"
- glib:nick="no-reply">
- <doc xml:space="preserve">No reply to a message expecting one, usually means a timeout occurred.</doc>
- </member>
- <member name="io_error"
- value="5"
- c:identifier="G_DBUS_ERROR_IO_ERROR"
- glib:nick="io-error">
- <doc xml:space="preserve">Something went wrong reading or writing to a socket, for example.</doc>
- </member>
- <member name="bad_address"
- value="6"
- c:identifier="G_DBUS_ERROR_BAD_ADDRESS"
- glib:nick="bad-address">
- <doc xml:space="preserve">A D-Bus bus address was malformed.</doc>
- </member>
- <member name="not_supported"
- value="7"
- c:identifier="G_DBUS_ERROR_NOT_SUPPORTED"
- glib:nick="not-supported">
- <doc xml:space="preserve">Requested operation isn't supported (like ENOSYS on UNIX).</doc>
- </member>
- <member name="limits_exceeded"
- value="8"
- c:identifier="G_DBUS_ERROR_LIMITS_EXCEEDED"
- glib:nick="limits-exceeded">
- <doc xml:space="preserve">Some limited resource is exhausted.</doc>
- </member>
- <member name="access_denied"
- value="9"
- c:identifier="G_DBUS_ERROR_ACCESS_DENIED"
- glib:nick="access-denied">
- <doc xml:space="preserve">Security restrictions don't allow doing what you're trying to do.</doc>
- </member>
- <member name="auth_failed"
- value="10"
- c:identifier="G_DBUS_ERROR_AUTH_FAILED"
- glib:nick="auth-failed">
- <doc xml:space="preserve">Authentication didn't work.</doc>
- </member>
- <member name="no_server"
- value="11"
- c:identifier="G_DBUS_ERROR_NO_SERVER"
- glib:nick="no-server">
- <doc xml:space="preserve">Unable to connect to server (probably caused by ECONNREFUSED on a
- socket).</doc>
- </member>
- <member name="timeout"
- value="12"
- c:identifier="G_DBUS_ERROR_TIMEOUT"
- glib:nick="timeout">
- <doc xml:space="preserve">Certain timeout errors, possibly ETIMEDOUT on a socket. Note that
- %G_DBUS_ERROR_NO_REPLY is used for message reply timeouts. Warning:
- this is confusingly-named given that %G_DBUS_ERROR_TIMED_OUT also
- exists. We can't fix it for compatibility reasons so just be
- careful.</doc>
- </member>
- <member name="no_network"
- value="13"
- c:identifier="G_DBUS_ERROR_NO_NETWORK"
- glib:nick="no-network">
- <doc xml:space="preserve">No network access (probably ENETUNREACH on a socket).</doc>
- </member>
- <member name="address_in_use"
- value="14"
- c:identifier="G_DBUS_ERROR_ADDRESS_IN_USE"
- glib:nick="address-in-use">
- <doc xml:space="preserve">Can't bind a socket since its address is in use (i.e. EADDRINUSE).</doc>
- </member>
- <member name="disconnected"
- value="15"
- c:identifier="G_DBUS_ERROR_DISCONNECTED"
- glib:nick="disconnected">
- <doc xml:space="preserve">The connection is disconnected and you're trying to use it.</doc>
- </member>
- <member name="invalid_args"
- value="16"
- c:identifier="G_DBUS_ERROR_INVALID_ARGS"
- glib:nick="invalid-args">
- <doc xml:space="preserve">Invalid arguments passed to a method call.</doc>
- </member>
- <member name="file_not_found"
- value="17"
- c:identifier="G_DBUS_ERROR_FILE_NOT_FOUND"
- glib:nick="file-not-found">
- <doc xml:space="preserve">Missing file.</doc>
- </member>
- <member name="file_exists"
- value="18"
- c:identifier="G_DBUS_ERROR_FILE_EXISTS"
- glib:nick="file-exists">
- <doc xml:space="preserve">Existing file and the operation you're using does not silently overwrite.</doc>
- </member>
- <member name="unknown_method"
- value="19"
- c:identifier="G_DBUS_ERROR_UNKNOWN_METHOD"
- glib:nick="unknown-method">
- <doc xml:space="preserve">Method name you invoked isn't known by the object you invoked it on.</doc>
- </member>
- <member name="timed_out"
- value="20"
- c:identifier="G_DBUS_ERROR_TIMED_OUT"
- glib:nick="timed-out">
- <doc xml:space="preserve">Certain timeout errors, e.g. while starting a service. Warning: this is
- confusingly-named given that %G_DBUS_ERROR_TIMEOUT also exists. We
- can't fix it for compatibility reasons so just be careful.</doc>
- </member>
- <member name="match_rule_not_found"
- value="21"
- c:identifier="G_DBUS_ERROR_MATCH_RULE_NOT_FOUND"
- glib:nick="match-rule-not-found">
- <doc xml:space="preserve">Tried to remove or modify a match rule that didn't exist.</doc>
- </member>
- <member name="match_rule_invalid"
- value="22"
- c:identifier="G_DBUS_ERROR_MATCH_RULE_INVALID"
- glib:nick="match-rule-invalid">
- <doc xml:space="preserve">The match rule isn't syntactically valid.</doc>
- </member>
- <member name="spawn_exec_failed"
- value="23"
- c:identifier="G_DBUS_ERROR_SPAWN_EXEC_FAILED"
- glib:nick="spawn-exec-failed">
- <doc xml:space="preserve">While starting a new process, the exec() call failed.</doc>
- </member>
- <member name="spawn_fork_failed"
- value="24"
- c:identifier="G_DBUS_ERROR_SPAWN_FORK_FAILED"
- glib:nick="spawn-fork-failed">
- <doc xml:space="preserve">While starting a new process, the fork() call failed.</doc>
- </member>
- <member name="spawn_child_exited"
- value="25"
- c:identifier="G_DBUS_ERROR_SPAWN_CHILD_EXITED"
- glib:nick="spawn-child-exited">
- <doc xml:space="preserve">While starting a new process, the child exited with a status code.</doc>
- </member>
- <member name="spawn_child_signaled"
- value="26"
- c:identifier="G_DBUS_ERROR_SPAWN_CHILD_SIGNALED"
- glib:nick="spawn-child-signaled">
- <doc xml:space="preserve">While starting a new process, the child exited on a signal.</doc>
- </member>
- <member name="spawn_failed"
- value="27"
- c:identifier="G_DBUS_ERROR_SPAWN_FAILED"
- glib:nick="spawn-failed">
- <doc xml:space="preserve">While starting a new process, something went wrong.</doc>
- </member>
- <member name="spawn_setup_failed"
- value="28"
- c:identifier="G_DBUS_ERROR_SPAWN_SETUP_FAILED"
- glib:nick="spawn-setup-failed">
- <doc xml:space="preserve">We failed to setup the environment correctly.</doc>
- </member>
- <member name="spawn_config_invalid"
- value="29"
- c:identifier="G_DBUS_ERROR_SPAWN_CONFIG_INVALID"
- glib:nick="spawn-config-invalid">
- <doc xml:space="preserve">We failed to setup the config parser correctly.</doc>
- </member>
- <member name="spawn_service_invalid"
- value="30"
- c:identifier="G_DBUS_ERROR_SPAWN_SERVICE_INVALID"
- glib:nick="spawn-service-invalid">
- <doc xml:space="preserve">Bus name was not valid.</doc>
- </member>
- <member name="spawn_service_not_found"
- value="31"
- c:identifier="G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND"
- glib:nick="spawn-service-not-found">
- <doc xml:space="preserve">Service file not found in system-services directory.</doc>
- </member>
- <member name="spawn_permissions_invalid"
- value="32"
- c:identifier="G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID"
- glib:nick="spawn-permissions-invalid">
- <doc xml:space="preserve">Permissions are incorrect on the setuid helper.</doc>
- </member>
- <member name="spawn_file_invalid"
- value="33"
- c:identifier="G_DBUS_ERROR_SPAWN_FILE_INVALID"
- glib:nick="spawn-file-invalid">
- <doc xml:space="preserve">Service file invalid (Name, User or Exec missing).</doc>
- </member>
- <member name="spawn_no_memory"
- value="34"
- c:identifier="G_DBUS_ERROR_SPAWN_NO_MEMORY"
- glib:nick="spawn-no-memory">
- <doc xml:space="preserve">Tried to get a UNIX process ID and it wasn't available.</doc>
- </member>
- <member name="unix_process_id_unknown"
- value="35"
- c:identifier="G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN"
- glib:nick="unix-process-id-unknown">
- <doc xml:space="preserve">Tried to get a UNIX process ID and it wasn't available.</doc>
- </member>
- <member name="invalid_signature"
- value="36"
- c:identifier="G_DBUS_ERROR_INVALID_SIGNATURE"
- glib:nick="invalid-signature">
- <doc xml:space="preserve">A type signature is not valid.</doc>
- </member>
- <member name="invalid_file_content"
- value="37"
- c:identifier="G_DBUS_ERROR_INVALID_FILE_CONTENT"
- glib:nick="invalid-file-content">
- <doc xml:space="preserve">A file contains invalid syntax or is otherwise broken.</doc>
- </member>
- <member name="selinux_security_context_unknown"
- value="38"
- c:identifier="G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN"
- glib:nick="selinux-security-context-unknown">
- <doc xml:space="preserve">Asked for SELinux security context and it wasn't available.</doc>
- </member>
- <member name="adt_audit_data_unknown"
- value="39"
- c:identifier="G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN"
- glib:nick="adt-audit-data-unknown">
- <doc xml:space="preserve">Asked for ADT audit data and it wasn't available.</doc>
- </member>
- <member name="object_path_in_use"
- value="40"
- c:identifier="G_DBUS_ERROR_OBJECT_PATH_IN_USE"
- glib:nick="object-path-in-use">
- <doc xml:space="preserve">There's already an object with the requested object path.</doc>
- </member>
- <member name="unknown_object"
- value="41"
- c:identifier="G_DBUS_ERROR_UNKNOWN_OBJECT"
- glib:nick="unknown-object">
- <doc xml:space="preserve">Object you invoked a method on isn't known. Since 2.42</doc>
- </member>
- <member name="unknown_interface"
- value="42"
- c:identifier="G_DBUS_ERROR_UNKNOWN_INTERFACE"
- glib:nick="unknown-interface">
- <doc xml:space="preserve">Interface you invoked a method on isn't known by the object. Since 2.42</doc>
- </member>
- <member name="unknown_property"
- value="43"
- c:identifier="G_DBUS_ERROR_UNKNOWN_PROPERTY"
- glib:nick="unknown-property">
- <doc xml:space="preserve">Property you tried to access isn't known by the object. Since 2.42</doc>
- </member>
- <member name="property_read_only"
- value="44"
- c:identifier="G_DBUS_ERROR_PROPERTY_READ_ONLY"
- glib:nick="property-read-only">
- <doc xml:space="preserve">Property you tried to set is read-only. Since 2.42</doc>
- </member>
- <function name="encode_gerror"
- c:identifier="g_dbus_error_encode_gerror"
- version="2.26">
- <doc xml:space="preserve">Creates a D-Bus error name to use for @error. If @error matches
- a registered error (cf. g_dbus_error_register_error()), the corresponding
- D-Bus error name will be returned.
- Otherwise the a name of the form
- `org.gtk.GDBus.UnmappedGError.Quark._ESCAPED_QUARK_NAME.Code_ERROR_CODE`
- will be used. This allows other GDBus applications to map the error
- on the wire back to a #GError using g_dbus_error_new_for_dbus_error().
- This function is typically only used in object mappings to put a
- #GError on the wire. Regular applications should not use it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A D-Bus error name (never %NULL). Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_remote_error"
- c:identifier="g_dbus_error_get_remote_error"
- version="2.26">
- <doc xml:space="preserve">Gets the D-Bus error name used for @error, if any.
- This function is guaranteed to return a D-Bus error name for all
- #GErrors returned from functions handling remote method calls
- (e.g. g_dbus_connection_call_finish()) unless
- g_dbus_error_strip_remote_error() has been used on @error.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an allocated string or %NULL if the D-Bus error name
- could not be found. Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">a #GError</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="is_remote_error"
- c:identifier="g_dbus_error_is_remote_error"
- version="2.26">
- <doc xml:space="preserve">Checks if @error represents an error received via D-Bus from a remote peer. If so,
- use g_dbus_error_get_remote_error() to get the name of the error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @error represents an error from a remote peer,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_dbus_error"
- c:identifier="g_dbus_error_new_for_dbus_error"
- version="2.26">
- <doc xml:space="preserve">Creates a #GError based on the contents of @dbus_error_name and
- @dbus_error_message.
- Errors registered with g_dbus_error_register_error() will be looked
- up using @dbus_error_name and if a match is found, the error domain
- and code is used. Applications can use g_dbus_error_get_remote_error()
- to recover @dbus_error_name.
- If a match against a registered error is not found and the D-Bus
- error name is in a form as returned by g_dbus_error_encode_gerror()
- the error domain and code encoded in the name is used to
- create the #GError. Also, @dbus_error_name is added to the error message
- such that it can be recovered with g_dbus_error_get_remote_error().
- Otherwise, a #GError with the error code %G_IO_ERROR_DBUS_ERROR
- in the #G_IO_ERROR error domain is returned. Also, @dbus_error_name is
- added to the error message such that it can be recovered with
- g_dbus_error_get_remote_error().
- In all three cases, @dbus_error_name can always be recovered from the
- returned #GError using the g_dbus_error_get_remote_error() function
- (unless g_dbus_error_strip_remote_error() hasn't been used on the returned error).
- This function is typically only used in object mappings to prepare
- #GError instances for applications. Regular applications should not use
- it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">An allocated #GError. Free with g_error_free().</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </return-value>
- <parameters>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dbus_error_message" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="quark" c:identifier="g_dbus_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="register_error"
- c:identifier="g_dbus_error_register_error"
- version="2.26">
- <doc xml:space="preserve">Creates an association to map between @dbus_error_name and
- #GErrors specified by @error_domain and @error_code.
- This is typically done in the routine that returns the #GQuark for
- an error domain.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the association was created, %FALSE if it already
- exists.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error_domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for a error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="error_code" transfer-ownership="none">
- <doc xml:space="preserve">An error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register_error_domain"
- c:identifier="g_dbus_error_register_error_domain"
- version="2.26">
- <doc xml:space="preserve">Helper function for associating a #GError error domain with D-Bus error names.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="error_domain_quark_name" transfer-ownership="none">
- <doc xml:space="preserve">The error domain name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="quark_volatile" transfer-ownership="none">
- <doc xml:space="preserve">A pointer where to store the #GQuark.</doc>
- <type name="gsize" c:type="volatile gsize*"/>
- </parameter>
- <parameter name="entries" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to @num_entries #GDBusErrorEntry struct items.</doc>
- <type name="DBusErrorEntry" c:type="const GDBusErrorEntry*"/>
- </parameter>
- <parameter name="num_entries" transfer-ownership="none">
- <doc xml:space="preserve">Number of items to register.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="set_dbus_error"
- c:identifier="g_dbus_error_set_dbus_error"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Does nothing if @error is %NULL. Otherwise sets *@error to
- a new #GError created with g_dbus_error_new_for_dbus_error()
- with @dbus_error_message prepend with @format (unless %NULL).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a #GError or %NULL.</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dbus_error_message" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">printf()-style format to prepend to @dbus_error_message or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">Arguments for @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="set_dbus_error_valist"
- c:identifier="g_dbus_error_set_dbus_error_valist"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Like g_dbus_error_set_dbus_error() but intended for language bindings.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a #GError or %NULL.</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dbus_error_message" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">printf()-style format to prepend to @dbus_error_message or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">Arguments for @format.</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </function>
- <function name="strip_remote_error"
- c:identifier="g_dbus_error_strip_remote_error"
- version="2.26">
- <doc xml:space="preserve">Looks for extra information in the error message used to recover
- the D-Bus error name and strips it if found. If stripped, the
- message field in @error will correspond exactly to what was
- received on the wire.
- This is typically used when presenting errors to the end user.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if information was stripped, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unregister_error"
- c:identifier="g_dbus_error_unregister_error"
- version="2.26">
- <doc xml:space="preserve">Destroys an association previously set up with g_dbus_error_register_error().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the association was destroyed, %FALSE if it wasn't found.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error_domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for a error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="error_code" transfer-ownership="none">
- <doc xml:space="preserve">An error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <record name="DBusErrorEntry" c:type="GDBusErrorEntry" version="2.26">
- <doc xml:space="preserve">Struct used in g_dbus_error_register_error_domain().</doc>
- <field name="error_code" writable="1">
- <doc xml:space="preserve">An error code.</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="dbus_error_name" writable="1">
- <doc xml:space="preserve">The D-Bus error name to associate with @error_code.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- </record>
- <interface name="DBusInterface"
- c:symbol-prefix="dbus_interface"
- c:type="GDBusInterface"
- version="2.30"
- glib:type-name="GDBusInterface"
- glib:get-type="g_dbus_interface_get_type"
- glib:type-struct="DBusInterfaceIface">
- <doc xml:space="preserve">The #GDBusInterface type is the base type for D-Bus interfaces both
- on the service side (see #GDBusInterfaceSkeleton) and client side
- (see #GDBusProxy).</doc>
- <virtual-method name="dup_object" invoker="dup_object" version="2.32">
- <doc xml:space="preserve">Gets the #GDBusObject that @interface_ belongs to, if any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObject or %NULL. The returned
- reference should be freed with g_object_unref().</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_info" invoker="get_info" version="2.30">
- <doc xml:space="preserve">Gets D-Bus introspection information for the D-Bus interface
- implemented by @interface_.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo. Do not free.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_object"
- invoker="get_object"
- version="2.30"
- introspectable="0">
- <doc xml:space="preserve">Gets the #GDBusObject that @interface_ belongs to, if any.
- It is not safe to use the returned object if @interface_ or
- the returned object is being used from other threads. See
- g_dbus_interface_dup_object() for a thread-safe alternative.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject or %NULL. The returned
- reference belongs to @interface_ and should not be freed.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_object" invoker="set_object" version="2.30">
- <doc xml:space="preserve">Sets the #GDBusObject for @interface_ to @object.
- Note that @interface_ will hold a weak reference to @object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusObject or %NULL.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="dup_object"
- c:identifier="g_dbus_interface_dup_object"
- shadows="get_object"
- version="2.32">
- <doc xml:space="preserve">Gets the #GDBusObject that @interface_ belongs to, if any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObject or %NULL. The returned
- reference should be freed with g_object_unref().</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_info"
- c:identifier="g_dbus_interface_get_info"
- version="2.30">
- <doc xml:space="preserve">Gets D-Bus introspection information for the D-Bus interface
- implemented by @interface_.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo. Do not free.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_object"
- c:identifier="g_dbus_interface_get_object"
- shadowed-by="dup_object"
- version="2.30"
- introspectable="0">
- <doc xml:space="preserve">Gets the #GDBusObject that @interface_ belongs to, if any.
- It is not safe to use the returned object if @interface_ or
- the returned object is being used from other threads. See
- g_dbus_interface_dup_object() for a thread-safe alternative.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject or %NULL. The returned
- reference belongs to @interface_ and should not be freed.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_object"
- c:identifier="g_dbus_interface_set_object"
- version="2.30">
- <doc xml:space="preserve">Sets the #GDBusObject for @interface_ to @object.
- Note that @interface_ will hold a weak reference to @object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </instance-parameter>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusObject or %NULL.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <callback name="DBusInterfaceGetPropertyFunc"
- c:type="GDBusInterfaceGetPropertyFunc"
- version="2.26">
- <doc xml:space="preserve">The type of the @get_property function in #GDBusInterfaceVTable.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GVariant with the value for @property_name or %NULL if
- @error is set. If the returned #GVariant is floating, it is
- consumed - otherwise its reference count is decreased by one.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the remote caller.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that the method was invoked on.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus interface name for the property.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the property to get the value of.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">Return location for error.</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">The @user_data #gpointer passed to g_dbus_connection_register_object().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="DBusInterfaceIface"
- c:type="GDBusInterfaceIface"
- glib:is-gtype-struct-for="DBusInterface"
- version="2.30">
- <doc xml:space="preserve">Base type for D-Bus interfaces.</doc>
- <field name="parent_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_info">
- <callback name="get_info">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo. Do not free.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_object">
- <callback name="get_object">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject or %NULL. The returned
- reference belongs to @interface_ and should not be freed.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_object">
- <callback name="set_object">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusObject or %NULL.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="dup_object">
- <callback name="dup_object">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObject or %NULL. The returned
- reference should be freed with g_object_unref().</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">An exported D-Bus interface.</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="DBusInterfaceInfo"
- c:type="GDBusInterfaceInfo"
- version="2.26"
- glib:type-name="GDBusInterfaceInfo"
- glib:get-type="g_dbus_interface_info_get_type"
- c:symbol-prefix="dbus_interface_info">
- <doc xml:space="preserve">Information about a D-Bus interface.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">The name of the D-Bus interface, e.g. "org.freedesktop.DBus.Properties".</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="methods" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusMethodInfo structures or %NULL if there are no methods.</doc>
- <array c:type="GDBusMethodInfo**">
- <type name="DBusMethodInfo" c:type="GDBusMethodInfo*"/>
- </array>
- </field>
- <field name="signals" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusSignalInfo structures or %NULL if there are no signals.</doc>
- <array c:type="GDBusSignalInfo**">
- <type name="DBusSignalInfo" c:type="GDBusSignalInfo*"/>
- </array>
- </field>
- <field name="properties" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusPropertyInfo structures or %NULL if there are no properties.</doc>
- <array c:type="GDBusPropertyInfo**">
- <type name="DBusPropertyInfo" c:type="GDBusPropertyInfo*"/>
- </array>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <method name="cache_build"
- c:identifier="g_dbus_interface_info_cache_build"
- version="2.30">
- <doc xml:space="preserve">Builds a lookup-cache to speed up
- g_dbus_interface_info_lookup_method(),
- g_dbus_interface_info_lookup_signal() and
- g_dbus_interface_info_lookup_property().
- If this has already been called with @info, the existing cache is
- used and its use count is increased.
- Note that @info cannot be modified until
- g_dbus_interface_info_cache_release() is called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="cache_release"
- c:identifier="g_dbus_interface_info_cache_release"
- version="2.30">
- <doc xml:space="preserve">Decrements the usage count for the cache for @info built by
- g_dbus_interface_info_cache_build() (if any) and frees the
- resources used by the cache if the usage count drops to zero.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A GDBusInterfaceInfo</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="generate_xml"
- c:identifier="g_dbus_interface_info_generate_xml"
- version="2.26">
- <doc xml:space="preserve">Appends an XML representation of @info (and its children) to @string_builder.
- This function is typically used for generating introspection XML
- documents at run-time for handling the
- `org.freedesktop.DBus.Introspectable.Introspect`
- method.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusNodeInfo</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- <parameter name="indent" transfer-ownership="none">
- <doc xml:space="preserve">Indentation level.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="string_builder"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GString to to append XML data to.</doc>
- <type name="GLib.String" c:type="GString*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_method"
- c:identifier="g_dbus_interface_info_lookup_method"
- version="2.26">
- <doc xml:space="preserve">Looks up information about a method.
- The cost of this function is O(n) in number of methods unless
- g_dbus_interface_info_cache_build() has been used on @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInfo or %NULL if not found. Do not free, it is owned by @info.</doc>
- <type name="DBusMethodInfo" c:type="GDBusMethodInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus method name (typically in CamelCase)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_property"
- c:identifier="g_dbus_interface_info_lookup_property"
- version="2.26">
- <doc xml:space="preserve">Looks up information about a property.
- The cost of this function is O(n) in number of properties unless
- g_dbus_interface_info_cache_build() has been used on @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusPropertyInfo or %NULL if not found. Do not free, it is owned by @info.</doc>
- <type name="DBusPropertyInfo" c:type="GDBusPropertyInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus property name (typically in CamelCase).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_signal"
- c:identifier="g_dbus_interface_info_lookup_signal"
- version="2.26">
- <doc xml:space="preserve">Looks up information about a signal.
- The cost of this function is O(n) in number of signals unless
- g_dbus_interface_info_cache_build() has been used on @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusSignalInfo or %NULL if not found. Do not free, it is owned by @info.</doc>
- <type name="DBusSignalInfo" c:type="GDBusSignalInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus signal name (typically in CamelCase)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref"
- c:identifier="g_dbus_interface_info_ref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_dbus_interface_info_unref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <callback name="DBusInterfaceMethodCallFunc"
- c:type="GDBusInterfaceMethodCallFunc"
- version="2.26">
- <doc xml:space="preserve">The type of the @method_call function in #GDBusInterfaceVTable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the remote caller.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that the method was invoked on.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus interface name the method was invoked on.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the method that was invoked.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant tuple with parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation object that must be used to return a value or error.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">The @user_data #gpointer passed to g_dbus_connection_register_object().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="DBusInterfaceSetPropertyFunc"
- c:type="GDBusInterfaceSetPropertyFunc"
- version="2.26">
- <doc xml:space="preserve">The type of the @set_property function in #GDBusInterfaceVTable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the property was set to @value, %FALSE if @error is set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the remote caller.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that the method was invoked on.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus interface name for the property.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the property to get the value of.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set the property to.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">Return location for error.</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">The @user_data #gpointer passed to g_dbus_connection_register_object().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="DBusInterfaceSkeleton"
- c:symbol-prefix="dbus_interface_skeleton"
- c:type="GDBusInterfaceSkeleton"
- version="2.30"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GDBusInterfaceSkeleton"
- glib:get-type="g_dbus_interface_skeleton_get_type"
- glib:type-struct="DBusInterfaceSkeletonClass">
- <doc xml:space="preserve">Abstract base class for D-Bus interfaces on the service side.</doc>
- <implements name="DBusInterface"/>
- <virtual-method name="flush" invoker="flush" version="2.30">
- <doc xml:space="preserve">If @interface_ has outstanding changes, request for these changes to be
- emitted immediately.
- For example, an exported D-Bus interface may queue up property
- changes and emit the
- `org.freedesktop.DBus.Properties::Propert``
- signal later (e.g. in an idle handler). This technique is useful
- for collapsing multiple property changes into one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="g_authorize_method">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- <parameter name="invocation" transfer-ownership="none">
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_info" invoker="get_info" version="2.30">
- <doc xml:space="preserve">Gets D-Bus introspection information for the D-Bus interface
- implemented by @interface_.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo (never %NULL). Do not free.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_properties"
- invoker="get_properties"
- version="2.30">
- <doc xml:space="preserve">Gets all D-Bus properties for @interface_.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GVariant of type
- ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
- Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_vtable"
- invoker="get_vtable"
- version="2.30"
- introspectable="0">
- <doc xml:space="preserve">Gets the interface vtable for the D-Bus interface implemented by
- @interface_. The returned function pointers should expect @interface_
- itself to be passed as @user_data.</doc>
- <return-value>
- <doc xml:space="preserve">A #GDBusInterfaceVTable (never %NULL).</doc>
- <type name="DBusInterfaceVTable" c:type="GDBusInterfaceVTable*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="export"
- c:identifier="g_dbus_interface_skeleton_export"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Exports @interface_ at @object_path on @connection.
- This can be called multiple times to export the same @interface_
- onto multiple connections however the @object_path provided must be
- the same for all connections.
- Use g_dbus_interface_skeleton_unexport() to unexport the object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the interface was exported on @connection, otherwise %FALSE with
- @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus interface to export.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection to export @interface_ on.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The path to export the interface at.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush"
- c:identifier="g_dbus_interface_skeleton_flush"
- version="2.30">
- <doc xml:space="preserve">If @interface_ has outstanding changes, request for these changes to be
- emitted immediately.
- For example, an exported D-Bus interface may queue up property
- changes and emit the
- `org.freedesktop.DBus.Properties::Propert``
- signal later (e.g. in an idle handler). This technique is useful
- for collapsing multiple property changes into one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_connection"
- c:identifier="g_dbus_interface_skeleton_get_connection"
- version="2.30">
- <doc xml:space="preserve">Gets the first connection that @interface_ is exported on, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection or %NULL if @interface_ is
- not exported anywhere. Do not free, the object belongs to @interface_.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_connections"
- c:identifier="g_dbus_interface_skeleton_get_connections"
- version="2.32">
- <doc xml:space="preserve">Gets a list of the connections that @interface_ is exported on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of
- all the connections that @interface_ is exported on. The returned
- list should be freed with g_list_free() after each element has
- been freed with g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusConnection"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_dbus_interface_skeleton_get_flags"
- version="2.30">
- <doc xml:space="preserve">Gets the #GDBusInterfaceSkeletonFlags that describes what the behavior
- of @interface_</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">One or more flags from the #GDBusInterfaceSkeletonFlags enumeration.</doc>
- <type name="DBusInterfaceSkeletonFlags"
- c:type="GDBusInterfaceSkeletonFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_info"
- c:identifier="g_dbus_interface_skeleton_get_info"
- version="2.30">
- <doc xml:space="preserve">Gets D-Bus introspection information for the D-Bus interface
- implemented by @interface_.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo (never %NULL). Do not free.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_object_path"
- c:identifier="g_dbus_interface_skeleton_get_object_path"
- version="2.30">
- <doc xml:space="preserve">Gets the object path that @interface_ is exported on, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @interface_ or %NULL if @interface_ is not exported
- anywhere. Do not free, the string belongs to @interface_.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_properties"
- c:identifier="g_dbus_interface_skeleton_get_properties"
- version="2.30">
- <doc xml:space="preserve">Gets all D-Bus properties for @interface_.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GVariant of type
- ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
- Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_vtable"
- c:identifier="g_dbus_interface_skeleton_get_vtable"
- version="2.30"
- introspectable="0">
- <doc xml:space="preserve">Gets the interface vtable for the D-Bus interface implemented by
- @interface_. The returned function pointers should expect @interface_
- itself to be passed as @user_data.</doc>
- <return-value>
- <doc xml:space="preserve">A #GDBusInterfaceVTable (never %NULL).</doc>
- <type name="DBusInterfaceVTable" c:type="GDBusInterfaceVTable*"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_connection"
- c:identifier="g_dbus_interface_skeleton_has_connection"
- version="2.32">
- <doc xml:space="preserve">Checks if @interface_ is exported on @connection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @interface_ is exported on @connection, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flags"
- c:identifier="g_dbus_interface_skeleton_set_flags"
- version="2.30">
- <doc xml:space="preserve">Sets flags describing what the behavior of @skeleton should be.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusInterfaceSkeletonFlags enumeration.</doc>
- <type name="DBusInterfaceSkeletonFlags"
- c:type="GDBusInterfaceSkeletonFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="unexport"
- c:identifier="g_dbus_interface_skeleton_unexport"
- version="2.30">
- <doc xml:space="preserve">Stops exporting @interface_ on all connections it is exported on.
- To unexport @interface_ from only a single connection, use
- g_dbus_interface_skeleton_unexport_from_connection()</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unexport_from_connection"
- c:identifier="g_dbus_interface_skeleton_unexport_from_connection"
- version="2.32">
- <doc xml:space="preserve">Stops exporting @interface_ on @connection.
- To stop exporting on all connections the interface is exported on,
- use g_dbus_interface_skeleton_unexport().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- </parameters>
- </method>
- <property name="g-flags"
- version="2.30"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusInterfaceSkeletonFlags enumeration.</doc>
- <type name="DBusInterfaceSkeletonFlags"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DBusInterfaceSkeletonPrivate"
- c:type="GDBusInterfaceSkeletonPrivate*"/>
- </field>
- <glib:signal name="g-authorize-method" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when a method is invoked by a remote caller and used to
- determine if the method call is authorized.
- Note that this signal is emitted in a thread dedicated to
- handling the method call so handlers are allowed to perform
- blocking IO. This means that it is appropriate to call e.g.
- [polkit_authority_check_authorization_sync()](http://hal.freedesktop.org/docs/polkit/PolkitAuthority.html#polkit-authority-check-authorization-sync)
- with the
- [POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION](http://hal.freedesktop.org/docs/polkit/PolkitAuthority.html#POLKIT-CHECK-AUTHORIZATION-FLAGS-ALLOW-USER-INTERACTION:CAPS)
- flag set.
- If %FALSE is returned then no further handlers are run and the
- signal handler must take a reference to @invocation and finish
- handling the call (e.g. return an error via
- g_dbus_method_invocation_return_error()).
- Otherwise, if %TRUE is returned, signal emission continues. If no
- handlers return %FALSE, then the method is dispatched. If
- @interface has an enclosing #GDBusObjectSkeleton, then the
- #GDBusObjectSkeleton::authorize-method signal handlers run before
- the handlers for this signal.
- The default class handler just returns %TRUE.
- Please note that the common case is optimized: if no signals
- handlers are connected and the default class handler isn't
- overridden (for both @interface and the enclosing
- #GDBusObjectSkeleton, if any) and #GDBusInterfaceSkeleton:g-flags does
- not have the
- %G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD
- flags set, no dedicated thread is ever used and the call will be
- handled in the same thread as the object that @interface belongs
- to was exported in.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the call is authorized, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="DBusInterfaceSkeletonClass"
- c:type="GDBusInterfaceSkeletonClass"
- glib:is-gtype-struct-for="DBusInterfaceSkeleton"
- version="2.30">
- <doc xml:space="preserve">Class structure for #GDBusInterfaceSkeleton.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">The parent class.</doc>
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_info">
- <callback name="get_info">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo (never %NULL). Do not free.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_vtable" introspectable="0">
- <callback name="get_vtable" introspectable="0">
- <return-value>
- <doc xml:space="preserve">A #GDBusInterfaceVTable (never %NULL).</doc>
- <type name="DBusInterfaceVTable" c:type="GDBusInterfaceVTable*"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_properties">
- <callback name="get_properties">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GVariant of type
- ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
- Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush">
- <callback name="flush">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="vfunc_padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <field name="g_authorize_method">
- <callback name="g_authorize_method">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- <parameter name="invocation" transfer-ownership="none">
- <type name="DBusMethodInvocation"
- c:type="GDBusMethodInvocation*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="signal_padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <bitfield name="DBusInterfaceSkeletonFlags"
- version="2.30"
- glib:type-name="GDBusInterfaceSkeletonFlags"
- glib:get-type="g_dbus_interface_skeleton_flags_get_type"
- c:type="GDBusInterfaceSkeletonFlags">
- <doc xml:space="preserve">Flags describing the behavior of a #GDBusInterfaceSkeleton instance.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_INTERFACE_SKELETON_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="handle_method_invocations_in_thread"
- value="1"
- c:identifier="G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD"
- glib:nick="handle-method-invocations-in-thread">
- <doc xml:space="preserve">Each method invocation is handled in
- a thread dedicated to the invocation. This means that the method implementation can use blocking IO
- without blocking any other part of the process. It also means that the method implementation must
- use locking to access data structures used by other threads.</doc>
- </member>
- </bitfield>
- <record name="DBusInterfaceSkeletonPrivate"
- c:type="GDBusInterfaceSkeletonPrivate"
- disguised="1">
- </record>
- <record name="DBusInterfaceVTable"
- c:type="GDBusInterfaceVTable"
- version="2.26">
- <doc xml:space="preserve">Virtual table for handling properties and method calls for a D-Bus
- interface.
- Since 2.38, if you want to handle getting/setting D-Bus properties
- asynchronously, give %NULL as your get_property() or set_property()
- function. The D-Bus call will be directed to your @method_call function,
- with the provided @interface_name set to "org.freedesktop.DBus.Properties".
- Ownership of the #GDBusMethodInvocation object passed to the
- method_call() function is transferred to your handler; you must
- call one of the methods of #GDBusMethodInvocation to return a reply
- (possibly empty), or an error. These functions also take ownership
- of the passed-in invocation object, so unless the invocation
- object has otherwise been referenced, it will be then be freed.
- Calling one of these functions may be done within your
- method_call() implementation but it also can be done at a later
- point to handle the method asynchronously.
- The usual checks on the validity of the calls is performed. For
- `Get` calls, an error is automatically returned if the property does
- not exist or the permissions do not allow access. The same checks are
- performed for `Set` calls, and the provided value is also checked for
- being the correct type.
- For both `Get` and `Set` calls, the #GDBusMethodInvocation
- passed to the @method_call handler can be queried with
- g_dbus_method_invocation_get_property_info() to get a pointer
- to the #GDBusPropertyInfo of the property.
- If you have readable properties specified in your interface info,
- you must ensure that you either provide a non-%NULL @get_property()
- function or provide implementations of both the `Get` and `GetAll`
- methods on org.freedesktop.DBus.Properties interface in your @method_call
- function. Note that the required return type of the `Get` call is
- `(v)`, not the type of the property. `GetAll` expects a return value
- of type `a{sv}`.
- If you have writable properties specified in your interface info,
- you must ensure that you either provide a non-%NULL @set_property()
- function or provide an implementation of the `Set` call. If implementing
- the call, you must return the value of type %G_VARIANT_TYPE_UNIT.</doc>
- <field name="method_call" writable="1">
- <doc xml:space="preserve">Function for handling incoming method calls.</doc>
- <type name="DBusInterfaceMethodCallFunc"
- c:type="GDBusInterfaceMethodCallFunc"/>
- </field>
- <field name="get_property" writable="1">
- <doc xml:space="preserve">Function for getting a property.</doc>
- <type name="DBusInterfaceGetPropertyFunc"
- c:type="GDBusInterfaceGetPropertyFunc"/>
- </field>
- <field name="set_property" writable="1">
- <doc xml:space="preserve">Function for setting a property.</doc>
- <type name="DBusInterfaceSetPropertyFunc"
- c:type="GDBusInterfaceSetPropertyFunc"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <class name="DBusMenuModel"
- c:symbol-prefix="dbus_menu_model"
- c:type="GDBusMenuModel"
- parent="MenuModel"
- glib:type-name="GDBusMenuModel"
- glib:get-type="g_dbus_menu_model_get_type">
- <doc xml:space="preserve">#GDBusMenuModel is an implementation of #GMenuModel that can be used
- as a proxy for a menu model that is exported over D-Bus with
- g_dbus_connection_export_menu_model().</doc>
- <function name="get" c:identifier="g_dbus_menu_model_get" version="2.32">
- <doc xml:space="preserve">Obtains a #GDBusMenuModel for the menu model which is exported
- at the given @bus_name and @object_path.
- The thread default main context is taken at the time of this call.
- All signals on the menu model (and any linked models) are reported
- with respect to this context. All calls on the returned menu model
- (and linked models) must also originate from this same context, with
- the thread default main context unchanged.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusMenuModel object. Free with
- g_object_unref().</doc>
- <type name="DBusMenuModel" c:type="GDBusMenuModel*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="bus_name" transfer-ownership="none">
- <doc xml:space="preserve">the bus name which exports the menu model</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">the object path at which the menu model is exported</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- </class>
- <class name="DBusMessage"
- c:symbol-prefix="dbus_message"
- c:type="GDBusMessage"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GDBusMessage"
- glib:get-type="g_dbus_message_get_type">
- <doc xml:space="preserve">A type for representing D-Bus messages that can be sent or received
- on a #GDBusConnection.</doc>
- <constructor name="new" c:identifier="g_dbus_message_new" version="2.26">
- <doc xml:space="preserve">Creates a new empty #GDBusMessage.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- </constructor>
- <constructor name="new_from_blob"
- c:identifier="g_dbus_message_new_from_blob"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Creates a new #GDBusMessage from the data stored at @blob. The byte
- order that the message was in can be retrieved using
- g_dbus_message_get_byte_order().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GDBusMessage or %NULL if @error is set. Free with
- g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <parameter name="blob" transfer-ownership="none">
- <doc xml:space="preserve">A blob represent a binary D-Bus message.</doc>
- <array length="1" zero-terminated="0" c:type="guchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="blob_len" transfer-ownership="none">
- <doc xml:space="preserve">The length of @blob.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="capabilities" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusCapabilityFlags describing what protocol features are supported.</doc>
- <type name="DBusCapabilityFlags" c:type="GDBusCapabilityFlags"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_method_call"
- c:identifier="g_dbus_message_new_method_call"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GDBusMessage for a method call.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A valid D-Bus name or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A valid object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A valid D-Bus interface name or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">A valid method name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_signal"
- c:identifier="g_dbus_message_new_signal"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GDBusMessage for a signal emission.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A valid object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal" transfer-ownership="none">
- <doc xml:space="preserve">A valid signal name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="bytes_needed"
- c:identifier="g_dbus_message_bytes_needed"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Utility function to calculate how many bytes are needed to
- completely deserialize the D-Bus message stored at @blob.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes needed or -1 if @error is set (e.g. if
- @blob contains invalid data or not enough data is available to
- determine the size).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="blob" transfer-ownership="none">
- <doc xml:space="preserve">A blob represent a binary D-Bus message.</doc>
- <array length="1" zero-terminated="0" c:type="guchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="blob_len" transfer-ownership="none">
- <doc xml:space="preserve">The length of @blob (must be at least 16).</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </function>
- <method name="copy"
- c:identifier="g_dbus_message_copy"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Copies @message. The copy is a deep copy and the returned
- #GDBusMessage is completely identical except that it is guaranteed
- to not be locked.
- This operation can fail if e.g. @message contains file descriptors
- and the per-process or system-wide open files limit is reached.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GDBusMessage or %NULL if @error is set.
- Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_arg0"
- c:identifier="g_dbus_message_get_arg0"
- version="2.26">
- <doc xml:space="preserve">Convenience to get the first item in the body of @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The string item or %NULL if the first item in the body of
- @message is not a string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_body"
- c:identifier="g_dbus_message_get_body"
- version="2.26">
- <doc xml:space="preserve">Gets the body of a message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant or %NULL if the body is
- empty. Do not free, it is owned by @message.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_byte_order"
- c:identifier="g_dbus_message_get_byte_order">
- <doc xml:space="preserve">Gets the byte order of @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The byte order.</doc>
- <type name="DBusMessageByteOrder" c:type="GDBusMessageByteOrder"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_destination"
- c:identifier="g_dbus_message_get_destination"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_error_name"
- c:identifier="g_dbus_message_get_error_name"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_dbus_message_get_flags"
- version="2.26">
- <doc xml:space="preserve">Gets the flags for @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Flags that are set (typically values from the #GDBusMessageFlags enumeration bitwise ORed together).</doc>
- <type name="DBusMessageFlags" c:type="GDBusMessageFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_header"
- c:identifier="g_dbus_message_get_header"
- version="2.26">
- <doc xml:space="preserve">Gets a header field on @message.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GVariant with the value if the header was found, %NULL
- otherwise. Do not free, it is owned by @message.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="header_field" transfer-ownership="none">
- <doc xml:space="preserve">A 8-bit unsigned integer (typically a value from the #GDBusMessageHeaderField enumeration)</doc>
- <type name="DBusMessageHeaderField"
- c:type="GDBusMessageHeaderField"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_header_fields"
- c:identifier="g_dbus_message_get_header_fields"
- version="2.26">
- <doc xml:space="preserve">Gets an array of all header fields on @message that are set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An array of header fields
- terminated by %G_DBUS_MESSAGE_HEADER_FIELD_INVALID. Each element
- is a #guchar. Free with g_free().</doc>
- <array c:type="guchar*">
- <type name="guint8" c:type="guchar"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_interface"
- c:identifier="g_dbus_message_get_interface"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_locked"
- c:identifier="g_dbus_message_get_locked"
- version="2.26">
- <doc xml:space="preserve">Checks whether @message is locked. To monitor changes to this
- value, conncet to the #GObject::notify signal to listen for changes
- on the #GDBusMessage:locked property.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @message is locked, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_member"
- c:identifier="g_dbus_message_get_member"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_message_type"
- c:identifier="g_dbus_message_get_message_type"
- version="2.26">
- <doc xml:space="preserve">Gets the type of @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A 8-bit unsigned integer (typically a value from the #GDBusMessageType enumeration).</doc>
- <type name="DBusMessageType" c:type="GDBusMessageType"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_num_unix_fds"
- c:identifier="g_dbus_message_get_num_unix_fds"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path"
- c:identifier="g_dbus_message_get_path"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_reply_serial"
- c:identifier="g_dbus_message_get_reply_serial"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sender"
- c:identifier="g_dbus_message_get_sender"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_serial"
- c:identifier="g_dbus_message_get_serial"
- version="2.26">
- <doc xml:space="preserve">Gets the serial for @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #guint32.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_signature"
- c:identifier="g_dbus_message_get_signature"
- version="2.26">
- <doc xml:space="preserve">Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_unix_fd_list"
- c:identifier="g_dbus_message_get_unix_fd_list"
- version="2.26">
- <doc xml:space="preserve">Gets the UNIX file descriptors associated with @message, if any.
- This method is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixFDList or %NULL if no file descriptors are
- associated. Do not free, this object is owned by @message.</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="lock" c:identifier="g_dbus_message_lock" version="2.26">
- <doc xml:space="preserve">If @message is locked, does nothing. Otherwise locks the message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="new_method_error"
- c:identifier="g_dbus_message_new_method_error"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GDBusMessage that is an error reply to @method_call_message.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="method_call_message"
- transfer-ownership="none">
- <doc xml:space="preserve">A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- create a reply message to.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="error_name" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="error_message_format" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus error message in a printf() format.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">Arguments for @error_message_format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="new_method_error_literal"
- c:identifier="g_dbus_message_new_method_error_literal"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GDBusMessage that is an error reply to @method_call_message.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="method_call_message"
- transfer-ownership="none">
- <doc xml:space="preserve">A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- create a reply message to.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="error_name" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="error_message" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_method_error_valist"
- c:identifier="g_dbus_message_new_method_error_valist"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Like g_dbus_message_new_method_error() but intended for language bindings.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="method_call_message"
- transfer-ownership="none">
- <doc xml:space="preserve">A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- create a reply message to.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="error_name" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="error_message_format" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus error message in a printf() format.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">Arguments for @error_message_format.</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_method_reply"
- c:identifier="g_dbus_message_new_method_reply"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GDBusMessage that is a reply to @method_call_message.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GDBusMessage. Free with g_object_unref().</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="method_call_message"
- transfer-ownership="none">
- <doc xml:space="preserve">A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- create a reply message to.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="print" c:identifier="g_dbus_message_print" version="2.26">
- <doc xml:space="preserve">Produces a human-readable multi-line description of @message.
- The contents of the description has no ABI guarantees, the contents
- and formatting is subject to change at any time. Typical output
- looks something like this:
- |[
- Flags: none
- Version: 0
- Serial: 4
- Headers:
- path -> objectpath '/org/gtk/GDBus/TestObject'
- interface -> 'org.gtk.GDBus.TestInterface'
- member -> 'GimmeStdout'
- destination -> ':1.146'
- Body: ()
- UNIX File Descriptors:
- (none)
- ]|
- or
- |[
- Flags: no-reply-expected
- Version: 0
- Serial: 477
- Headers:
- reply-serial -> uint32 4
- destination -> ':1.159'
- sender -> ':1.146'
- num-unix-fds -> uint32 1
- Body: ()
- UNIX File Descriptors:
- fd 12: dev=0:10,mode=020620,ino=5,uid=500,gid=5,rdev=136:2,size=0,atime=1273085037,mtime=1273085851,ctime=1272982635
- ]|</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A string that should be freed with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="indent" transfer-ownership="none">
- <doc xml:space="preserve">Indentation level.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_body"
- c:identifier="g_dbus_message_set_body"
- version="2.26">
- <doc xml:space="preserve">Sets the body @message. As a side-effect the
- %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field is set to the
- type string of @body (or cleared if @body is %NULL).
- If @body is floating, @message assumes ownership of @body.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="body" transfer-ownership="none">
- <doc xml:space="preserve">Either %NULL or a #GVariant that is a tuple.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_byte_order"
- c:identifier="g_dbus_message_set_byte_order">
- <doc xml:space="preserve">Sets the byte order of @message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="byte_order" transfer-ownership="none">
- <doc xml:space="preserve">The byte order.</doc>
- <type name="DBusMessageByteOrder" c:type="GDBusMessageByteOrder"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_destination"
- c:identifier="g_dbus_message_set_destination"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_error_name"
- c:identifier="g_dbus_message_set_error_name"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flags"
- c:identifier="g_dbus_message_set_flags"
- version="2.26">
- <doc xml:space="preserve">Sets the flags to set on @message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags for @message that are set (typically values from the #GDBusMessageFlags
- enumeration bitwise ORed together).</doc>
- <type name="DBusMessageFlags" c:type="GDBusMessageFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_header"
- c:identifier="g_dbus_message_set_header"
- version="2.26">
- <doc xml:space="preserve">Sets a header field on @message.
- If @value is floating, @message assumes ownership of @value.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="header_field" transfer-ownership="none">
- <doc xml:space="preserve">A 8-bit unsigned integer (typically a value from the #GDBusMessageHeaderField enumeration)</doc>
- <type name="DBusMessageHeaderField"
- c:type="GDBusMessageHeaderField"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant to set the header field or %NULL to clear the header field.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_interface"
- c:identifier="g_dbus_message_set_interface"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_member"
- c:identifier="g_dbus_message_set_member"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_message_type"
- c:identifier="g_dbus_message_set_message_type"
- version="2.26">
- <doc xml:space="preserve">Sets @message to be of @type.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">A 8-bit unsigned integer (typically a value from the #GDBusMessageType enumeration).</doc>
- <type name="DBusMessageType" c:type="GDBusMessageType"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_num_unix_fds"
- c:identifier="g_dbus_message_set_num_unix_fds"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_path"
- c:identifier="g_dbus_message_set_path"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_reply_serial"
- c:identifier="g_dbus_message_set_reply_serial"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_sender"
- c:identifier="g_dbus_message_set_sender"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_serial"
- c:identifier="g_dbus_message_set_serial"
- version="2.26">
- <doc xml:space="preserve">Sets the serial for @message.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="serial" transfer-ownership="none">
- <doc xml:space="preserve">A #guint32.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_signature"
- c:identifier="g_dbus_message_set_signature"
- version="2.26">
- <doc xml:space="preserve">Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The value to set.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_unix_fd_list"
- c:identifier="g_dbus_message_set_unix_fd_list"
- version="2.26">
- <doc xml:space="preserve">Sets the UNIX file descriptors associated with @message. As a
- side-effect the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header
- field is set to the number of fds in @fd_list (or cleared if
- @fd_list is %NULL).
- This method is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="fd_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GUnixFDList or %NULL.</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_blob"
- c:identifier="g_dbus_message_to_blob"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Serializes @message to a blob. The byte order returned by
- g_dbus_message_get_byte_order() will be used.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A pointer to a
- valid binary D-Bus message of @out_size bytes generated by @message
- or %NULL if @error is set. Free with g_free().</doc>
- <array length="0" zero-terminated="0" c:type="guchar*">
- <type name="guint8" c:type="guchar"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- <parameter name="out_size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Return location for size of generated blob.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="capabilities" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusCapabilityFlags describing what protocol features are supported.</doc>
- <type name="DBusCapabilityFlags" c:type="GDBusCapabilityFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_gerror"
- c:identifier="g_dbus_message_to_gerror"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">If @message is not of type %G_DBUS_MESSAGE_TYPE_ERROR does
- nothing and returns %FALSE.
- Otherwise this method encodes the error in @message as a #GError
- using g_dbus_error_set_dbus_error() using the information in the
- %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field of @message as
- well as the first string item in @message's body.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @error was set, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMessage.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="locked" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- </class>
- <enumeration name="DBusMessageByteOrder"
- version="2.26"
- glib:type-name="GDBusMessageByteOrder"
- glib:get-type="g_dbus_message_byte_order_get_type"
- c:type="GDBusMessageByteOrder">
- <doc xml:space="preserve">Enumeration used to describe the byte order of a D-Bus message.</doc>
- <member name="big_endian"
- value="66"
- c:identifier="G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN"
- glib:nick="big-endian">
- <doc xml:space="preserve">The byte order is big endian.</doc>
- </member>
- <member name="little_endian"
- value="108"
- c:identifier="G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN"
- glib:nick="little-endian">
- <doc xml:space="preserve">The byte order is little endian.</doc>
- </member>
- </enumeration>
- <callback name="DBusMessageFilterFunction"
- c:type="GDBusMessageFilterFunction"
- version="2.26">
- <doc xml:space="preserve">Signature for function used in g_dbus_connection_add_filter().
- A filter function is passed a #GDBusMessage and expected to return
- a #GDBusMessage too. Passive filter functions that don't modify the
- message can simply return the @message object:
- |[
- static GDBusMessage *
- passive_filter (GDBusConnection *connection
- GDBusMessage *message,
- gboolean incoming,
- gpointer user_data)
- {
- /<!-- -->* inspect @message *<!-- -->/
- return message;
- }
- ]|
- Filter functions that wants to drop a message can simply return %NULL:
- |[
- static GDBusMessage *
- drop_filter (GDBusConnection *connection
- GDBusMessage *message,
- gboolean incoming,
- gpointer user_data)
- {
- if (should_drop_message)
- {
- g_object_unref (message);
- message = NULL;
- }
- return message;
- }
- ]|
- Finally, a filter function may modify a message by copying it:
- |[
- static GDBusMessage *
- modifying_filter (GDBusConnection *connection
- GDBusMessage *message,
- gboolean incoming,
- gpointer user_data)
- {
- GDBusMessage *copy;
- GError *error;
- error = NULL;
- copy = g_dbus_message_copy (message, &error);
- /<!-- -->* handle @error being is set *<!-- -->/
- g_object_unref (message);
- /<!-- -->* modify @copy *<!-- -->/
- return copy;
- }
- ]|
- If the returned #GDBusMessage is different from @message and cannot
- be sent on @connection (it could use features, such as file
- descriptors, not compatible with @connection), then a warning is
- logged to <emphasis>standard error</emphasis>. Applications can
- check this ahead of time using g_dbus_message_to_blob() passing a
- #GDBusCapabilityFlags value obtained from @connection.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A #GDBusMessage that will be freed with
- g_object_unref() or %NULL to drop the message. Passive filter
- functions can simply return the passed @message object.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="message" transfer-ownership="full">
- <doc xml:space="preserve">A locked #GDBusMessage that the filter function takes ownership of.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </parameter>
- <parameter name="incoming" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is a message received from the other peer, %FALSE if it is
- a message to be sent to the other peer.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">User data passed when adding the filter.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="DBusMessageFlags"
- version="2.26"
- glib:type-name="GDBusMessageFlags"
- glib:get-type="g_dbus_message_flags_get_type"
- c:type="GDBusMessageFlags">
- <doc xml:space="preserve">Message flags used in #GDBusMessage.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_MESSAGE_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="no_reply_expected"
- value="1"
- c:identifier="G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED"
- glib:nick="no-reply-expected">
- <doc xml:space="preserve">A reply is not expected.</doc>
- </member>
- <member name="no_auto_start"
- value="2"
- c:identifier="G_DBUS_MESSAGE_FLAGS_NO_AUTO_START"
- glib:nick="no-auto-start">
- <doc xml:space="preserve">The bus must not launch an
- owner for the destination name in response to this message.</doc>
- </member>
- <member name="allow_interactive_authorization"
- value="4"
- c:identifier="G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION"
- glib:nick="allow-interactive-authorization">
- <doc xml:space="preserve">If set on a method
- call, this flag means that the caller is prepared to wait for interactive
- authorization. Since 2.46.</doc>
- </member>
- </bitfield>
- <enumeration name="DBusMessageHeaderField"
- version="2.26"
- glib:type-name="GDBusMessageHeaderField"
- glib:get-type="g_dbus_message_header_field_get_type"
- c:type="GDBusMessageHeaderField">
- <doc xml:space="preserve">Header fields used in #GDBusMessage.</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">Not a valid header field.</doc>
- </member>
- <member name="path"
- value="1"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_PATH"
- glib:nick="path">
- <doc xml:space="preserve">The object path.</doc>
- </member>
- <member name="interface"
- value="2"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE"
- glib:nick="interface">
- <doc xml:space="preserve">The interface name.</doc>
- </member>
- <member name="member"
- value="3"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_MEMBER"
- glib:nick="member">
- <doc xml:space="preserve">The method or signal name.</doc>
- </member>
- <member name="error_name"
- value="4"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME"
- glib:nick="error-name">
- <doc xml:space="preserve">The name of the error that occurred.</doc>
- </member>
- <member name="reply_serial"
- value="5"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL"
- glib:nick="reply-serial">
- <doc xml:space="preserve">The serial number the message is a reply to.</doc>
- </member>
- <member name="destination"
- value="6"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION"
- glib:nick="destination">
- <doc xml:space="preserve">The name the message is intended for.</doc>
- </member>
- <member name="sender"
- value="7"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_SENDER"
- glib:nick="sender">
- <doc xml:space="preserve">Unique name of the sender of the message (filled in by the bus).</doc>
- </member>
- <member name="signature"
- value="8"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE"
- glib:nick="signature">
- <doc xml:space="preserve">The signature of the message body.</doc>
- </member>
- <member name="num_unix_fds"
- value="9"
- c:identifier="G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS"
- glib:nick="num-unix-fds">
- <doc xml:space="preserve">The number of UNIX file descriptors that accompany the message.</doc>
- </member>
- </enumeration>
- <enumeration name="DBusMessageType"
- version="2.26"
- glib:type-name="GDBusMessageType"
- glib:get-type="g_dbus_message_type_get_type"
- c:type="GDBusMessageType">
- <doc xml:space="preserve">Message types used in #GDBusMessage.</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_DBUS_MESSAGE_TYPE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">Message is of invalid type.</doc>
- </member>
- <member name="method_call"
- value="1"
- c:identifier="G_DBUS_MESSAGE_TYPE_METHOD_CALL"
- glib:nick="method-call">
- <doc xml:space="preserve">Method call.</doc>
- </member>
- <member name="method_return"
- value="2"
- c:identifier="G_DBUS_MESSAGE_TYPE_METHOD_RETURN"
- glib:nick="method-return">
- <doc xml:space="preserve">Method reply.</doc>
- </member>
- <member name="error"
- value="3"
- c:identifier="G_DBUS_MESSAGE_TYPE_ERROR"
- glib:nick="error">
- <doc xml:space="preserve">Error reply.</doc>
- </member>
- <member name="signal"
- value="4"
- c:identifier="G_DBUS_MESSAGE_TYPE_SIGNAL"
- glib:nick="signal">
- <doc xml:space="preserve">Signal emission.</doc>
- </member>
- </enumeration>
- <record name="DBusMethodInfo"
- c:type="GDBusMethodInfo"
- version="2.26"
- glib:type-name="GDBusMethodInfo"
- glib:get-type="g_dbus_method_info_get_type"
- c:symbol-prefix="dbus_method_info">
- <doc xml:space="preserve">Information about a method on an D-Bus interface.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">The name of the D-Bus method, e.g. @RequestName.</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="in_args" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no in arguments.</doc>
- <array c:type="GDBusArgInfo**">
- <type name="DBusArgInfo" c:type="GDBusArgInfo*"/>
- </array>
- </field>
- <field name="out_args" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no out arguments.</doc>
- <array c:type="GDBusArgInfo**">
- <type name="DBusArgInfo" c:type="GDBusArgInfo*"/>
- </array>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <method name="ref" c:identifier="g_dbus_method_info_ref" version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusMethodInfo" c:type="GDBusMethodInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInfo</doc>
- <type name="DBusMethodInfo" c:type="GDBusMethodInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_dbus_method_info_unref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInfo.</doc>
- <type name="DBusMethodInfo" c:type="GDBusMethodInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="DBusMethodInvocation"
- c:symbol-prefix="dbus_method_invocation"
- c:type="GDBusMethodInvocation"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GDBusMethodInvocation"
- glib:get-type="g_dbus_method_invocation_get_type">
- <doc xml:space="preserve">Instances of the #GDBusMethodInvocation class are used when
- handling D-Bus method calls. It provides a way to asynchronously
- return results and errors.
- The normal way to obtain a #GDBusMethodInvocation object is to receive
- it as an argument to the handle_method_call() function in a
- #GDBusInterfaceVTable that was passed to g_dbus_connection_register_object().</doc>
- <method name="get_connection"
- c:identifier="g_dbus_method_invocation_get_connection"
- version="2.26">
- <doc xml:space="preserve">Gets the #GDBusConnection the method was invoked on.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection. Do not free, it is owned by @invocation.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_interface_name"
- c:identifier="g_dbus_method_invocation_get_interface_name"
- version="2.26">
- <doc xml:space="preserve">Gets the name of the D-Bus interface the method was invoked on.
- If this method call is a property Get, Set or GetAll call that has
- been redirected to the method call handler then
- "org.freedesktop.DBus.Properties" will be returned. See
- #GDBusInterfaceVTable for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string. Do not free, it is owned by @invocation.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_message"
- c:identifier="g_dbus_method_invocation_get_message"
- version="2.26">
- <doc xml:space="preserve">Gets the #GDBusMessage for the method invocation. This is useful if
- you need to use low-level protocol features, such as UNIX file
- descriptor passing, that cannot be properly expressed in the
- #GVariant API.
- See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- for an example of how to use this low-level API to send and receive
- UNIX file descriptors.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GDBusMessage. Do not free, it is owned by @invocation.</doc>
- <type name="DBusMessage" c:type="GDBusMessage*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_method_info"
- c:identifier="g_dbus_method_invocation_get_method_info"
- version="2.26">
- <doc xml:space="preserve">Gets information about the method call, if any.
- If this method invocation is a property Get, Set or GetAll call that
- has been redirected to the method call handler then %NULL will be
- returned. See g_dbus_method_invocation_get_property_info() and
- #GDBusInterfaceVTable for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInfo or %NULL. Do not free, it is owned by @invocation.</doc>
- <type name="DBusMethodInfo" c:type="const GDBusMethodInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_method_name"
- c:identifier="g_dbus_method_invocation_get_method_name"
- version="2.26">
- <doc xml:space="preserve">Gets the name of the method that was invoked.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string. Do not free, it is owned by @invocation.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_object_path"
- c:identifier="g_dbus_method_invocation_get_object_path"
- version="2.26">
- <doc xml:space="preserve">Gets the object path the method was invoked on.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string. Do not free, it is owned by @invocation.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_parameters"
- c:identifier="g_dbus_method_invocation_get_parameters"
- version="2.26">
- <doc xml:space="preserve">Gets the parameters of the method invocation. If there are no input
- parameters then this will return a GVariant with 0 children rather than NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant tuple. Do not unref this because it is owned by @invocation.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_property_info"
- c:identifier="g_dbus_method_invocation_get_property_info"
- version="2.38">
- <doc xml:space="preserve">Gets information about the property that this method call is for, if
- any.
- This will only be set in the case of an invocation in response to a
- property Get or Set call that has been directed to the method call
- handler for an object on account of its property_get() or
- property_set() vtable pointers being unset.
- See #GDBusInterfaceVTable for more information.
- If the call was GetAll, %NULL will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusPropertyInfo or %NULL</doc>
- <type name="DBusPropertyInfo" c:type="const GDBusPropertyInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sender"
- c:identifier="g_dbus_method_invocation_get_sender"
- version="2.26">
- <doc xml:space="preserve">Gets the bus name that invoked the method.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string. Do not free, it is owned by @invocation.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_user_data"
- c:identifier="g_dbus_method_invocation_get_user_data"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Gets the @user_data #gpointer passed to g_dbus_connection_register_object().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">A #gpointer.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="return_dbus_error"
- c:identifier="g_dbus_method_invocation_return_dbus_error"
- version="2.26">
- <doc xml:space="preserve">Finishes handling a D-Bus method call by returning an error.
- This method will free @invocation, you cannot use it afterwards.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="error_name" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="error_message" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_error"
- c:identifier="g_dbus_method_invocation_return_error"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Finishes handling a D-Bus method call by returning an error.
- See g_dbus_error_encode_gerror() for details about what error name
- will be returned on the wire. In a nutshell, if the given error is
- registered using g_dbus_error_register_error() the name given
- during registration is used. Otherwise, a name of the form
- `org.gtk.GDBus.UnmappedGError.Quark...` is used. This provides
- transparent mapping of #GError between applications using GDBus.
- If you are writing an application intended to be portable,
- always register errors with g_dbus_error_register_error()
- or use g_dbus_method_invocation_return_dbus_error().
- This method will free @invocation, you cannot use it afterwards.
- Since 2.48, if the method call requested for a reply not to be sent
- then this call will free @invocation but otherwise do nothing (as per
- the recommendations of the D-Bus specification).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for the #GError error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">The error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">printf()-style format.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">Parameters for @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="return_error_literal"
- c:identifier="g_dbus_method_invocation_return_error_literal"
- version="2.26">
- <doc xml:space="preserve">Like g_dbus_method_invocation_return_error() but without printf()-style formatting.
- This method will free @invocation, you cannot use it afterwards.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for the #GError error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">The error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">The error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_error_valist"
- c:identifier="g_dbus_method_invocation_return_error_valist"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Like g_dbus_method_invocation_return_error() but intended for
- language bindings.
- This method will free @invocation, you cannot use it afterwards.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for the #GError error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">The error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">printf()-style format.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">#va_list of parameters for @format.</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_gerror"
- c:identifier="g_dbus_method_invocation_return_gerror"
- version="2.26">
- <doc xml:space="preserve">Like g_dbus_method_invocation_return_error() but takes a #GError
- instead of the error domain, error code and message.
- This method will free @invocation, you cannot use it afterwards.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_value"
- c:identifier="g_dbus_method_invocation_return_value"
- version="2.26">
- <doc xml:space="preserve">Finishes handling a D-Bus method call by returning @parameters.
- If the @parameters GVariant is floating, it is consumed.
- It is an error if @parameters is not of the right format.
- This method will free @invocation, you cannot use it afterwards.
- Since 2.48, if the method call requested for a reply not to be sent
- then this call will sink @parameters and free @invocation, but
- otherwise do nothing (as per the recommendations of the D-Bus
- specification).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_value_with_unix_fd_list"
- c:identifier="g_dbus_method_invocation_return_value_with_unix_fd_list"
- version="2.30">
- <doc xml:space="preserve">Like g_dbus_method_invocation_return_value() but also takes a #GUnixFDList.
- This method is only available on UNIX.
- This method will free @invocation, you cannot use it afterwards.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="fd_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GUnixFDList or %NULL.</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="take_error"
- c:identifier="g_dbus_method_invocation_take_error"
- version="2.30"
- introspectable="0">
- <doc xml:space="preserve">Like g_dbus_method_invocation_return_gerror() but takes ownership
- of @error so the caller does not need to free it.
- This method will free @invocation, you cannot use it afterwards.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="invocation" transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="full">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="DBusNodeInfo"
- c:type="GDBusNodeInfo"
- version="2.26"
- glib:type-name="GDBusNodeInfo"
- glib:get-type="g_dbus_node_info_get_type"
- c:symbol-prefix="dbus_node_info">
- <doc xml:space="preserve">Information about nodes in a remote object hierarchy.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="path" writable="1">
- <doc xml:space="preserve">The path of the node or %NULL if omitted. Note that this may be a relative path. See the D-Bus specification for more details.</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="interfaces" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusInterfaceInfo structures or %NULL if there are no interfaces.</doc>
- <array c:type="GDBusInterfaceInfo**">
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </array>
- </field>
- <field name="nodes" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusNodeInfo structures or %NULL if there are no nodes.</doc>
- <array c:type="GDBusNodeInfo**">
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </array>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <constructor name="new_for_xml"
- c:identifier="g_dbus_node_info_new_for_xml"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Parses @xml_data and returns a #GDBusNodeInfo representing the data.
- The introspection XML must contain exactly one top-level
- <node> element.
- Note that this routine is using a
- [GMarkup][glib-Simple-XML-Subset-Parser.description]-based
- parser that only accepts a subset of valid XML documents.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusNodeInfo structure or %NULL if @error is set. Free
- with g_dbus_node_info_unref().</doc>
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </return-value>
- <parameters>
- <parameter name="xml_data" transfer-ownership="none">
- <doc xml:space="preserve">Valid D-Bus introspection XML.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="generate_xml"
- c:identifier="g_dbus_node_info_generate_xml"
- version="2.26">
- <doc xml:space="preserve">Appends an XML representation of @info (and its children) to @string_builder.
- This function is typically used for generating introspection XML documents at run-time for
- handling the `org.freedesktop.DBus.Introspectable.Introspect` method.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusNodeInfo.</doc>
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </instance-parameter>
- <parameter name="indent" transfer-ownership="none">
- <doc xml:space="preserve">Indentation level.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="string_builder"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GString to to append XML data to.</doc>
- <type name="GLib.String" c:type="GString*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_interface"
- c:identifier="g_dbus_node_info_lookup_interface"
- version="2.26">
- <doc xml:space="preserve">Looks up information about an interface.
- The cost of this function is O(n) in number of interfaces.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceInfo or %NULL if not found. Do not free, it is owned by @info.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusNodeInfo.</doc>
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="g_dbus_node_info_ref" version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusNodeInfo</doc>
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_dbus_node_info_unref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusNodeInfo.</doc>
- <type name="DBusNodeInfo" c:type="GDBusNodeInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <interface name="DBusObject"
- c:symbol-prefix="dbus_object"
- c:type="GDBusObject"
- glib:type-name="GDBusObject"
- glib:get-type="g_dbus_object_get_type"
- glib:type-struct="DBusObjectIface">
- <doc xml:space="preserve">The #GDBusObject type is the base type for D-Bus objects on both
- the service side (see #GDBusObjectSkeleton) and the client side
- (see #GDBusObjectProxy). It is essentially just a container of
- interfaces.</doc>
- <virtual-method name="get_interface"
- invoker="get_interface"
- version="2.30">
- <doc xml:space="preserve">Gets the D-Bus interface with name @interface_name associated with
- @object, if any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if not found, otherwise a
- #GDBusInterface that must be freed with g_object_unref().</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_interfaces"
- invoker="get_interfaces"
- version="2.30">
- <doc xml:space="preserve">Gets the D-Bus interfaces associated with @object.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of #GDBusInterface instances.
- The returned list must be freed by g_list_free() after each element has been freed
- with g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusInterface"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_object_path"
- invoker="get_object_path"
- version="2.30">
- <doc xml:space="preserve">Gets the object path for @object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @object. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="interface_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="interface_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_interface"
- c:identifier="g_dbus_object_get_interface"
- version="2.30">
- <doc xml:space="preserve">Gets the D-Bus interface with name @interface_name associated with
- @object, if any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if not found, otherwise a
- #GDBusInterface that must be freed with g_object_unref().</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_interfaces"
- c:identifier="g_dbus_object_get_interfaces"
- version="2.30">
- <doc xml:space="preserve">Gets the D-Bus interfaces associated with @object.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of #GDBusInterface instances.
- The returned list must be freed by g_list_free() after each element has been freed
- with g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusInterface"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_object_path"
- c:identifier="g_dbus_object_get_object_path"
- version="2.30">
- <doc xml:space="preserve">Gets the object path for @object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @object. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </instance-parameter>
- </parameters>
- </method>
- <glib:signal name="interface-added" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when @interface is added to @object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="interface" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusInterface that was added.</doc>
- <type name="DBusInterface"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="interface-removed" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when @interface is removed from @object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="interface" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusInterface that was removed.</doc>
- <type name="DBusInterface"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="DBusObjectIface"
- c:type="GDBusObjectIface"
- glib:is-gtype-struct-for="DBusObject"
- version="2.30">
- <doc xml:space="preserve">Base object type for D-Bus objects.</doc>
- <field name="parent_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_object_path">
- <callback name="get_object_path">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @object. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_interfaces">
- <callback name="get_interfaces">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of #GDBusInterface instances.
- The returned list must be freed by g_list_free() after each element has been freed
- with g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusInterface"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_interface">
- <callback name="get_interface">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if not found, otherwise a
- #GDBusInterface that must be freed with g_object_unref().</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObject.</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="interface_added">
- <callback name="interface_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="interface_removed">
- <callback name="interface_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="DBusObjectManager"
- c:symbol-prefix="dbus_object_manager"
- c:type="GDBusObjectManager"
- glib:type-name="GDBusObjectManager"
- glib:get-type="g_dbus_object_manager_get_type"
- glib:type-struct="DBusObjectManagerIface">
- <doc xml:space="preserve">The #GDBusObjectManager type is the base type for service- and
- client-side implementations of the standardized
- [org.freedesktop.DBus.ObjectManager](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
- interface.
- See #GDBusObjectManagerClient for the client-side implementation
- and #GDBusObjectManagerServer for the service-side implementation.</doc>
- <virtual-method name="get_interface"
- invoker="get_interface"
- version="2.30">
- <doc xml:space="preserve">Gets the interface proxy for @interface_name at @object_path, if
- any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusInterface instance or %NULL. Free
- with g_object_unref().</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">Object path to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface name to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_object" invoker="get_object" version="2.30">
- <doc xml:space="preserve">Gets the #GDBusObjectProxy at @object_path, if any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObject or %NULL. Free with
- g_object_unref().</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">Object path to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_object_path"
- invoker="get_object_path"
- version="2.30">
- <doc xml:space="preserve">Gets the object path that @manager is for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @manager. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_objects" invoker="get_objects" version="2.30">
- <doc xml:space="preserve">Gets all #GDBusObject objects known to @manager.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of
- #GDBusObject objects. The returned list should be freed with
- g_list_free() after each element has been freed with
- g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusObject"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="interface_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="interface_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="object_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="object_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_interface"
- c:identifier="g_dbus_object_manager_get_interface"
- version="2.30">
- <doc xml:space="preserve">Gets the interface proxy for @interface_name at @object_path, if
- any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusInterface instance or %NULL. Free
- with g_object_unref().</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">Object path to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface name to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_object"
- c:identifier="g_dbus_object_manager_get_object"
- version="2.30">
- <doc xml:space="preserve">Gets the #GDBusObjectProxy at @object_path, if any.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObject or %NULL. Free with
- g_object_unref().</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">Object path to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_object_path"
- c:identifier="g_dbus_object_manager_get_object_path"
- version="2.30">
- <doc xml:space="preserve">Gets the object path that @manager is for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @manager. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_objects"
- c:identifier="g_dbus_object_manager_get_objects"
- version="2.30">
- <doc xml:space="preserve">Gets all #GDBusObject objects known to @manager.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of
- #GDBusObject objects. The returned list should be freed with
- g_list_free() after each element has been freed with
- g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusObject"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </instance-parameter>
- </parameters>
- </method>
- <glib:signal name="interface-added" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when @interface is added to @object.
- This signal exists purely as a convenience to avoid having to
- connect signals to all objects managed by @manager.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusObject on which an interface was added.</doc>
- <type name="DBusObject"/>
- </parameter>
- <parameter name="interface" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusInterface that was added.</doc>
- <type name="DBusInterface"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="interface-removed" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when @interface has been removed from @object.
- This signal exists purely as a convenience to avoid having to
- connect signals to all objects managed by @manager.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusObject on which an interface was removed.</doc>
- <type name="DBusObject"/>
- </parameter>
- <parameter name="interface" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusInterface that was removed.</doc>
- <type name="DBusInterface"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="object-added" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when @object is added to @manager.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusObject that was added.</doc>
- <type name="DBusObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="object-removed" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when @object is removed from @manager.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusObject that was removed.</doc>
- <type name="DBusObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <class name="DBusObjectManagerClient"
- c:symbol-prefix="dbus_object_manager_client"
- c:type="GDBusObjectManagerClient"
- version="2.30"
- parent="GObject.Object"
- glib:type-name="GDBusObjectManagerClient"
- glib:get-type="g_dbus_object_manager_client_get_type"
- glib:type-struct="DBusObjectManagerClientClass">
- <doc xml:space="preserve">#GDBusObjectManagerClient is used to create, monitor and delete object
- proxies for remote objects exported by a #GDBusObjectManagerServer (or any
- code implementing the
- [org.freedesktop.DBus.ObjectManager](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
- interface).
- Once an instance of this type has been created, you can connect to
- the #GDBusObjectManager::object-added and
- #GDBusObjectManager::object-removed signals and inspect the
- #GDBusObjectProxy objects returned by
- g_dbus_object_manager_get_objects().
- If the name for a #GDBusObjectManagerClient is not owned by anyone at
- object construction time, the default behavior is to request the
- message bus to launch an owner for the name. This behavior can be
- disabled using the %G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START
- flag. It's also worth noting that this only works if the name of
- interest is activatable in the first place. E.g. in some cases it
- is not possible to launch an owner for the requested name. In this
- case, #GDBusObjectManagerClient object construction still succeeds but
- there will be no object proxies
- (e.g. g_dbus_object_manager_get_objects() returns the empty list) and
- the #GDBusObjectManagerClient:name-owner property is %NULL.
- The owner of the requested name can come and go (for example
- consider a system service being restarted) – #GDBusObjectManagerClient
- handles this case too; simply connect to the #GObject::notify
- signal to watch for changes on the #GDBusObjectManagerClient:name-owner
- property. When the name owner vanishes, the behavior is that
- #GDBusObjectManagerClient:name-owner is set to %NULL (this includes
- emission of the #GObject::notify signal) and then
- #GDBusObjectManager::object-removed signals are synthesized
- for all currently existing object proxies. Since
- #GDBusObjectManagerClient:name-owner is %NULL when this happens, you can
- use this information to disambiguate a synthesized signal from a
- genuine signal caused by object removal on the remote
- #GDBusObjectManager. Similarly, when a new name owner appears,
- #GDBusObjectManager::object-added signals are synthesized
- while #GDBusObjectManagerClient:name-owner is still %NULL. Only when all
- object proxies have been added, the #GDBusObjectManagerClient:name-owner
- is set to the new name owner (this includes emission of the
- #GObject::notify signal). Furthermore, you are guaranteed that
- #GDBusObjectManagerClient:name-owner will alternate between a name owner
- (e.g. `:1.42`) and %NULL even in the case where
- the name of interest is atomically replaced
- Ultimately, #GDBusObjectManagerClient is used to obtain #GDBusProxy
- instances. All signals (including the
- org.freedesktop.DBus.Properties::PropertiesChanged signal)
- delivered to #GDBusProxy instances are guaranteed to originate
- from the name owner. This guarantee along with the behavior
- described above, means that certain race conditions including the
- "half the proxy is from the old owner and the other half is from
- the new owner" problem cannot happen.
- To avoid having the application connect to signals on the returned
- #GDBusObjectProxy and #GDBusProxy objects, the
- #GDBusObject::interface-added,
- #GDBusObject::interface-removed,
- #GDBusProxy::g-properties-changed and
- #GDBusProxy::g-signal signals
- are also emitted on the #GDBusObjectManagerClient instance managing these
- objects. The signals emitted are
- #GDBusObjectManager::interface-added,
- #GDBusObjectManager::interface-removed,
- #GDBusObjectManagerClient::interface-proxy-properties-changed and
- #GDBusObjectManagerClient::interface-proxy-signal.
- Note that all callbacks and signals are emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- that the #GDBusObjectManagerClient object was constructed
- in. Additionally, the #GDBusObjectProxy and #GDBusProxy objects
- originating from the #GDBusObjectManagerClient object will be created in
- the same context and, consequently, will deliver signals in the
- same main loop.</doc>
- <implements name="AsyncInitable"/>
- <implements name="DBusObjectManager"/>
- <implements name="Initable"/>
- <constructor name="new_finish"
- c:identifier="g_dbus_object_manager_client_new_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_object_manager_client_new().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- #GDBusObjectManagerClient object or %NULL if @error is set. Free
- with g_object_unref().</doc>
- <type name="DBusObjectManagerClient" c:type="GDBusObjectManager*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_for_bus_finish"
- c:identifier="g_dbus_object_manager_client_new_for_bus_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_object_manager_client_new_for_bus().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- #GDBusObjectManagerClient object or %NULL if @error is set. Free
- with g_object_unref().</doc>
- <type name="DBusObjectManagerClient" c:type="GDBusObjectManager*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new_for_bus().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_for_bus_sync"
- c:identifier="g_dbus_object_manager_client_new_for_bus_sync"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Like g_dbus_object_manager_client_new_sync() but takes a #GBusType instead
- of a #GDBusConnection.
- This is a synchronous failable constructor - the calling thread is
- blocked until a reply is received. See g_dbus_object_manager_client_new_for_bus()
- for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- #GDBusObjectManagerClient object or %NULL if @error is set. Free
- with g_object_unref().</doc>
- <type name="DBusObjectManagerClient" c:type="GDBusObjectManager*"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">A #GBusType.</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.</doc>
- <type name="DBusObjectManagerClientFlags"
- c:type="GDBusObjectManagerClientFlags"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The owner of the control object (unique or well-known name).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path of the control object.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="get_proxy_type_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.</doc>
- <type name="DBusProxyTypeFunc" c:type="GDBusProxyTypeFunc"/>
- </parameter>
- <parameter name="get_proxy_type_user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @get_proxy_type_func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="get_proxy_type_destroy_notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Free function for @get_proxy_type_user_data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sync"
- c:identifier="g_dbus_object_manager_client_new_sync"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Creates a new #GDBusObjectManagerClient object.
- This is a synchronous failable constructor - the calling thread is
- blocked until a reply is received. See g_dbus_object_manager_client_new()
- for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- #GDBusObjectManagerClient object or %NULL if @error is set. Free
- with g_object_unref().</doc>
- <type name="DBusObjectManagerClient" c:type="GDBusObjectManager*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.</doc>
- <type name="DBusObjectManagerClientFlags"
- c:type="GDBusObjectManagerClientFlags"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The owner of the control object (unique or well-known name), or %NULL when not using a message bus connection.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path of the control object.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="get_proxy_type_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.</doc>
- <type name="DBusProxyTypeFunc" c:type="GDBusProxyTypeFunc"/>
- </parameter>
- <parameter name="get_proxy_type_user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @get_proxy_type_func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="get_proxy_type_destroy_notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Free function for @get_proxy_type_user_data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="new"
- c:identifier="g_dbus_object_manager_client_new"
- version="2.30">
- <doc xml:space="preserve">Asynchronously creates a new #GDBusObjectManagerClient object.
- This is an asynchronous failable constructor. When the result is
- ready, @callback will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from. You can
- then call g_dbus_object_manager_client_new_finish() to get the result. See
- g_dbus_object_manager_client_new_sync() for the synchronous version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.</doc>
- <type name="DBusObjectManagerClientFlags"
- c:type="GDBusObjectManagerClientFlags"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The owner of the control object (unique or well-known name).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path of the control object.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="get_proxy_type_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.</doc>
- <type name="DBusProxyTypeFunc" c:type="GDBusProxyTypeFunc"/>
- </parameter>
- <parameter name="get_proxy_type_user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @get_proxy_type_func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="get_proxy_type_destroy_notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Free function for @get_proxy_type_user_data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="9">
- <doc xml:space="preserve">A #GAsyncReadyCallback to call when the request is satisfied.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_bus"
- c:identifier="g_dbus_object_manager_client_new_for_bus"
- version="2.30">
- <doc xml:space="preserve">Like g_dbus_object_manager_client_new() but takes a #GBusType instead of a
- #GDBusConnection.
- This is an asynchronous failable constructor. When the result is
- ready, @callback will be invoked in the
- [thread-default main loop][g-main-context-push-thread-default]
- of the thread you are calling this method from. You can
- then call g_dbus_object_manager_client_new_for_bus_finish() to get the result. See
- g_dbus_object_manager_client_new_for_bus_sync() for the synchronous version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">A #GBusType.</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.</doc>
- <type name="DBusObjectManagerClientFlags"
- c:type="GDBusObjectManagerClientFlags"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The owner of the control object (unique or well-known name).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path of the control object.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="get_proxy_type_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.</doc>
- <type name="DBusProxyTypeFunc" c:type="GDBusProxyTypeFunc"/>
- </parameter>
- <parameter name="get_proxy_type_user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @get_proxy_type_func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="get_proxy_type_destroy_notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Free function for @get_proxy_type_user_data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="9">
- <doc xml:space="preserve">A #GAsyncReadyCallback to call when the request is satisfied.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="interface_proxy_properties_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </instance-parameter>
- <parameter name="object_proxy" transfer-ownership="none">
- <type name="DBusObjectProxy" c:type="GDBusObjectProxy*"/>
- </parameter>
- <parameter name="interface_proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </parameter>
- <parameter name="changed_properties" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="invalidated_properties" transfer-ownership="none">
- <type name="utf8" c:type="const gchar* const*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="interface_proxy_signal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </instance-parameter>
- <parameter name="object_proxy" transfer-ownership="none">
- <type name="DBusObjectProxy" c:type="GDBusObjectProxy*"/>
- </parameter>
- <parameter name="interface_proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </parameter>
- <parameter name="sender_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_connection"
- c:identifier="g_dbus_object_manager_client_get_connection"
- version="2.30">
- <doc xml:space="preserve">Gets the #GDBusConnection used by @manager.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection object. Do not free,
- the object belongs to @manager.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerClient</doc>
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_dbus_object_manager_client_get_flags"
- version="2.30">
- <doc xml:space="preserve">Gets the flags that @manager was constructed with.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Zero of more flags from the #GDBusObjectManagerClientFlags
- enumeration.</doc>
- <type name="DBusObjectManagerClientFlags"
- c:type="GDBusObjectManagerClientFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerClient</doc>
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name"
- c:identifier="g_dbus_object_manager_client_get_name"
- version="2.30">
- <doc xml:space="preserve">Gets the name that @manager is for, or %NULL if not a message bus
- connection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A unique or well-known name. Do not free, the string
- belongs to @manager.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerClient</doc>
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name_owner"
- c:identifier="g_dbus_object_manager_client_get_name_owner"
- version="2.30">
- <doc xml:space="preserve">The unique name that owns the name that @manager is for or %NULL if
- no-one currently owns that name. You can connect to the
- #GObject::notify signal to track changes to the
- #GDBusObjectManagerClient:name-owner property.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">The name owner or %NULL if no name owner
- exists. Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerClient.</doc>
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="bus-type"
- version="2.30"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">If this property is not %G_BUS_TYPE_NONE, then
- #GDBusObjectManagerClient:connection must be %NULL and will be set to the
- #GDBusConnection obtained by calling g_bus_get() with the value
- of this property.</doc>
- <type name="BusType"/>
- </property>
- <property name="connection"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection to use.</doc>
- <type name="DBusConnection"/>
- </property>
- <property name="flags"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusObjectManagerClientFlags enumeration.</doc>
- <type name="DBusObjectManagerClientFlags"/>
- </property>
- <property name="get-proxy-type-destroy-notify"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GDestroyNotify for the #gpointer user_data in #GDBusObjectManagerClient:get-proxy-type-user-data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="get-proxy-type-func"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusProxyTypeFunc to use when determining what #GType to
- use for interface proxies or %NULL.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="get-proxy-type-user-data"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #gpointer user_data to pass to #GDBusObjectManagerClient:get-proxy-type-func.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="name"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The well-known name or unique name that the manager is for.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="name-owner" version="2.30" transfer-ownership="none">
- <doc xml:space="preserve">The unique name that owns #GDBusObjectManagerClient:name or %NULL if
- no-one is currently owning the name. Connect to the
- #GObject::notify signal to track changes to this property.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="object-path"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The object path the manager is for.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DBusObjectManagerClientPrivate"
- c:type="GDBusObjectManagerClientPrivate*"/>
- </field>
- <glib:signal name="interface-proxy-properties-changed"
- when="last"
- version="2.30">
- <doc xml:space="preserve">Emitted when one or more D-Bus properties on proxy changes. The
- local cache has already been updated when this signal fires. Note
- that both @changed_properties and @invalidated_properties are
- guaranteed to never be %NULL (either may be empty though).
- This signal exists purely as a convenience to avoid having to
- connect signals to all interface proxies managed by @manager.
- This signal is emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- that @manager was constructed in.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_proxy" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusObjectProxy on which an interface has properties that are changing.</doc>
- <type name="DBusObjectProxy"/>
- </parameter>
- <parameter name="interface_proxy" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusProxy that has properties that are changing.</doc>
- <type name="DBusProxy"/>
- </parameter>
- <parameter name="changed_properties" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant containing the properties that changed.</doc>
- <type name="GLib.Variant"/>
- </parameter>
- <parameter name="invalidated_properties" transfer-ownership="none">
- <doc xml:space="preserve">A %NULL terminated array of properties that was invalidated.</doc>
- <array>
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="interface-proxy-signal" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when a D-Bus signal is received on @interface_proxy.
- This signal exists purely as a convenience to avoid having to
- connect signals to all interface proxies managed by @manager.
- This signal is emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- that @manager was constructed in.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_proxy" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusObjectProxy on which an interface is emitting a D-Bus signal.</doc>
- <type name="DBusObjectProxy"/>
- </parameter>
- <parameter name="interface_proxy" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusProxy that is emitting a D-Bus signal.</doc>
- <type name="DBusProxy"/>
- </parameter>
- <parameter name="sender_name" transfer-ownership="none">
- <doc xml:space="preserve">The sender of the signal or NULL if the connection is not a bus connection.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <doc xml:space="preserve">The signal name.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal.</doc>
- <type name="GLib.Variant"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="DBusObjectManagerClientClass"
- c:type="GDBusObjectManagerClientClass"
- glib:is-gtype-struct-for="DBusObjectManagerClient"
- version="2.30">
- <doc xml:space="preserve">Class structure for #GDBusObjectManagerClient.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">The parent class.</doc>
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="interface_proxy_signal">
- <callback name="interface_proxy_signal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </parameter>
- <parameter name="object_proxy" transfer-ownership="none">
- <type name="DBusObjectProxy" c:type="GDBusObjectProxy*"/>
- </parameter>
- <parameter name="interface_proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </parameter>
- <parameter name="sender_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="interface_proxy_properties_changed">
- <callback name="interface_proxy_properties_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </parameter>
- <parameter name="object_proxy" transfer-ownership="none">
- <type name="DBusObjectProxy" c:type="GDBusObjectProxy*"/>
- </parameter>
- <parameter name="interface_proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </parameter>
- <parameter name="changed_properties" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="invalidated_properties" transfer-ownership="none">
- <type name="utf8" c:type="const gchar* const*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <bitfield name="DBusObjectManagerClientFlags"
- version="2.30"
- glib:type-name="GDBusObjectManagerClientFlags"
- glib:get-type="g_dbus_object_manager_client_flags_get_type"
- c:type="GDBusObjectManagerClientFlags">
- <doc xml:space="preserve">Flags used when constructing a #GDBusObjectManagerClient.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="do_not_auto_start"
- value="1"
- c:identifier="G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START"
- glib:nick="do-not-auto-start">
- <doc xml:space="preserve">If not set and the
- manager is for a well-known name, then request the bus to launch
- an owner for the name if no-one owns the name. This flag can only
- be used in managers for well-known names.</doc>
- </member>
- </bitfield>
- <record name="DBusObjectManagerClientPrivate"
- c:type="GDBusObjectManagerClientPrivate"
- disguised="1">
- </record>
- <record name="DBusObjectManagerIface"
- c:type="GDBusObjectManagerIface"
- glib:is-gtype-struct-for="DBusObjectManager"
- version="2.30">
- <doc xml:space="preserve">Base type for D-Bus object managers.</doc>
- <field name="parent_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_object_path">
- <callback name="get_object_path">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @manager. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_objects">
- <callback name="get_objects">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A list of
- #GDBusObject objects. The returned list should be freed with
- g_list_free() after each element has been freed with
- g_object_unref().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DBusObject"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_object">
- <callback name="get_object">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObject or %NULL. Free with
- g_object_unref().</doc>
- <type name="DBusObject" c:type="GDBusObject*"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">Object path to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_interface">
- <callback name="get_interface">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusInterface instance or %NULL. Free
- with g_object_unref().</doc>
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManager.</doc>
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">Object path to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus interface name to lookup.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="object_added">
- <callback name="object_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="object_removed">
- <callback name="object_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="interface_added">
- <callback name="interface_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="interface_removed">
- <callback name="interface_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <type name="DBusObjectManager" c:type="GDBusObjectManager*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObject" c:type="GDBusObject*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterface" c:type="GDBusInterface*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="DBusObjectManagerServer"
- c:symbol-prefix="dbus_object_manager_server"
- c:type="GDBusObjectManagerServer"
- version="2.30"
- parent="GObject.Object"
- glib:type-name="GDBusObjectManagerServer"
- glib:get-type="g_dbus_object_manager_server_get_type"
- glib:type-struct="DBusObjectManagerServerClass">
- <doc xml:space="preserve">#GDBusObjectManagerServer is used to export #GDBusObject instances using
- the standardized
- [org.freedesktop.DBus.ObjectManager](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
- interface. For example, remote D-Bus clients can get all objects
- and properties in a single call. Additionally, any change in the
- object hierarchy is broadcast using signals. This means that D-Bus
- clients can keep caches up to date by only listening to D-Bus
- signals.
- The recommended path to export an object manager at is the path form of the
- well-known name of a D-Bus service, or below. For example, if a D-Bus service
- is available at the well-known name `net.example.ExampleService1`, the object
- manager should typically be exported at `/net/example/ExampleService1`, or
- below (to allow for multiple object managers in a service).
- It is not supported to export an object manager at the root path, `/`.
- See #GDBusObjectManagerClient for the client-side code that is
- intended to be used with #GDBusObjectManagerServer or any D-Bus
- object implementing the org.freedesktop.DBus.ObjectManager
- interface.</doc>
- <implements name="DBusObjectManager"/>
- <constructor name="new"
- c:identifier="g_dbus_object_manager_server_new"
- version="2.30">
- <doc xml:space="preserve">Creates a new #GDBusObjectManagerServer object.
- The returned server isn't yet exported on any connection. To do so,
- use g_dbus_object_manager_server_set_connection(). Normally you
- want to export all of your objects before doing so to avoid
- [InterfacesAdded](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
- signals being emitted.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObjectManagerServer object. Free with g_object_unref().</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </return-value>
- <parameters>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path to export the manager object at, which should
- not be `/`.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="export"
- c:identifier="g_dbus_object_manager_server_export"
- version="2.30">
- <doc xml:space="preserve">Exports @object on @manager.
- If there is already a #GDBusObject exported at the object path,
- then the old object is removed.
- The object path for @object must be in the hierarchy rooted by the
- object path for @manager.
- Note that @manager will take a reference on @object for as long as
- it is exported.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerServer.</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectSkeleton.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </parameter>
- </parameters>
- </method>
- <method name="export_uniquely"
- c:identifier="g_dbus_object_manager_server_export_uniquely"
- version="2.30">
- <doc xml:space="preserve">Like g_dbus_object_manager_server_export() but appends a string of
- the form _N (with N being a natural number) to @object's object path
- if an object with the given path already exists. As such, the
- #GDBusObjectProxy:g-object-path property of @object may be modified.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerServer.</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">An object.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_connection"
- c:identifier="g_dbus_object_manager_server_get_connection"
- version="2.30">
- <doc xml:space="preserve">Gets the #GDBusConnection used by @manager.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusConnection object or %NULL if
- @manager isn't exported on a connection. The returned object should
- be freed with g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerServer</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_exported"
- c:identifier="g_dbus_object_manager_server_is_exported"
- version="2.34">
- <doc xml:space="preserve">Returns whether @object is currently exported on @manager.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @object is exported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerServer.</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </instance-parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">An object.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_connection"
- c:identifier="g_dbus_object_manager_server_set_connection">
- <doc xml:space="preserve">Exports all objects managed by @manager on @connection. If
- @connection is %NULL, stops exporting objects.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerServer.</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </instance-parameter>
- <parameter name="connection"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusConnection or %NULL.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unexport"
- c:identifier="g_dbus_object_manager_server_unexport"
- version="2.30">
- <doc xml:space="preserve">If @manager has an object at @path, removes the object. Otherwise
- does nothing.
- Note that @object_path must be in the hierarchy rooted by the
- object path for @manager.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if object at @object_path was removed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerServer.</doc>
- <type name="DBusObjectManagerServer"
- c:type="GDBusObjectManagerServer*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">An object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="connection"
- version="2.30"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection to export objects on.</doc>
- <type name="DBusConnection"/>
- </property>
- <property name="object-path"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The object path to register the manager object at.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DBusObjectManagerServerPrivate"
- c:type="GDBusObjectManagerServerPrivate*"/>
- </field>
- </class>
- <record name="DBusObjectManagerServerClass"
- c:type="GDBusObjectManagerServerClass"
- glib:is-gtype-struct-for="DBusObjectManagerServer"
- version="2.30">
- <doc xml:space="preserve">Class structure for #GDBusObjectManagerServer.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">The parent class.</doc>
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="DBusObjectManagerServerPrivate"
- c:type="GDBusObjectManagerServerPrivate"
- disguised="1">
- </record>
- <class name="DBusObjectProxy"
- c:symbol-prefix="dbus_object_proxy"
- c:type="GDBusObjectProxy"
- version="2.30"
- parent="GObject.Object"
- glib:type-name="GDBusObjectProxy"
- glib:get-type="g_dbus_object_proxy_get_type"
- glib:type-struct="DBusObjectProxyClass">
- <doc xml:space="preserve">A #GDBusObjectProxy is an object used to represent a remote object
- with one or more D-Bus interfaces. Normally, you don't instantiate
- a #GDBusObjectProxy yourself - typically #GDBusObjectManagerClient
- is used to obtain it.</doc>
- <implements name="DBusObject"/>
- <constructor name="new"
- c:identifier="g_dbus_object_proxy_new"
- version="2.30">
- <doc xml:space="preserve">Creates a new #GDBusObjectProxy for the given connection and
- object path.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GDBusObjectProxy</doc>
- <type name="DBusObjectProxy" c:type="GDBusObjectProxy*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">the object path</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_connection"
- c:identifier="g_dbus_object_proxy_get_connection"
- version="2.30">
- <doc xml:space="preserve">Gets the connection that @proxy is for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection. Do not free, the
- object is owned by @proxy.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusObjectProxy</doc>
- <type name="DBusObjectProxy" c:type="GDBusObjectProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="g-connection"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The connection of the proxy.</doc>
- <type name="DBusConnection"/>
- </property>
- <property name="g-object-path"
- version="2.30"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The object path of the proxy.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DBusObjectProxyPrivate" c:type="GDBusObjectProxyPrivate*"/>
- </field>
- </class>
- <record name="DBusObjectProxyClass"
- c:type="GDBusObjectProxyClass"
- glib:is-gtype-struct-for="DBusObjectProxy"
- version="2.30">
- <doc xml:space="preserve">Class structure for #GDBusObjectProxy.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">The parent class.</doc>
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="DBusObjectProxyPrivate"
- c:type="GDBusObjectProxyPrivate"
- disguised="1">
- </record>
- <class name="DBusObjectSkeleton"
- c:symbol-prefix="dbus_object_skeleton"
- c:type="GDBusObjectSkeleton"
- version="2.30"
- parent="GObject.Object"
- glib:type-name="GDBusObjectSkeleton"
- glib:get-type="g_dbus_object_skeleton_get_type"
- glib:type-struct="DBusObjectSkeletonClass">
- <doc xml:space="preserve">A #GDBusObjectSkeleton instance is essentially a group of D-Bus
- interfaces. The set of exported interfaces on the object may be
- dynamic and change at runtime.
- This type is intended to be used with #GDBusObjectManager.</doc>
- <implements name="DBusObject"/>
- <constructor name="new"
- c:identifier="g_dbus_object_skeleton_new"
- version="2.30">
- <doc xml:space="preserve">Creates a new #GDBusObjectSkeleton.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusObjectSkeleton. Free with g_object_unref().</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </return-value>
- <parameters>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">An object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="authorize_method">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </instance-parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- <parameter name="invocation" transfer-ownership="none">
- <type name="DBusMethodInvocation" c:type="GDBusMethodInvocation*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_interface"
- c:identifier="g_dbus_object_skeleton_add_interface"
- version="2.30">
- <doc xml:space="preserve">Adds @interface_ to @object.
- If @object already contains a #GDBusInterfaceSkeleton with the same
- interface name, it is removed before @interface_ is added.
- Note that @object takes its own reference on @interface_ and holds
- it until removed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectSkeleton.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </instance-parameter>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush"
- c:identifier="g_dbus_object_skeleton_flush"
- version="2.30">
- <doc xml:space="preserve">This method simply calls g_dbus_interface_skeleton_flush() on all
- interfaces belonging to @object. See that method for when flushing
- is useful.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectSkeleton.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remove_interface"
- c:identifier="g_dbus_object_skeleton_remove_interface"
- version="2.30">
- <doc xml:space="preserve">Removes @interface_ from @object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectSkeleton.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </instance-parameter>
- <parameter name="interface_" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceSkeleton.</doc>
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_interface_by_name"
- c:identifier="g_dbus_object_skeleton_remove_interface_by_name"
- version="2.30">
- <doc xml:space="preserve">Removes the #GDBusInterface with @interface_name from @object.
- If no D-Bus interface of the given interface exists, this function
- does nothing.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectSkeleton.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </instance-parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_object_path"
- c:identifier="g_dbus_object_skeleton_set_object_path"
- version="2.30">
- <doc xml:space="preserve">Sets the object path for @object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectSkeleton.</doc>
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </instance-parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="g-object-path"
- version="2.30"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The object path where the object is exported.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DBusObjectSkeletonPrivate"
- c:type="GDBusObjectSkeletonPrivate*"/>
- </field>
- <glib:signal name="authorize-method" when="last" version="2.30">
- <doc xml:space="preserve">Emitted when a method is invoked by a remote caller and used to
- determine if the method call is authorized.
- This signal is like #GDBusInterfaceSkeleton's
- #GDBusInterfaceSkeleton::g-authorize-method signal,
- except that it is for the enclosing object.
- The default class handler just returns %TRUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the call is authorized, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="interface" transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusInterfaceSkeleton that @invocation is for.</doc>
- <type name="DBusInterfaceSkeleton"/>
- </parameter>
- <parameter name="invocation" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusMethodInvocation.</doc>
- <type name="DBusMethodInvocation"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="DBusObjectSkeletonClass"
- c:type="GDBusObjectSkeletonClass"
- glib:is-gtype-struct-for="DBusObjectSkeleton"
- version="2.30">
- <doc xml:space="preserve">Class structure for #GDBusObjectSkeleton.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">The parent class.</doc>
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="authorize_method">
- <callback name="authorize_method">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="DBusObjectSkeleton" c:type="GDBusObjectSkeleton*"/>
- </parameter>
- <parameter name="interface_" transfer-ownership="none">
- <type name="DBusInterfaceSkeleton"
- c:type="GDBusInterfaceSkeleton*"/>
- </parameter>
- <parameter name="invocation" transfer-ownership="none">
- <type name="DBusMethodInvocation"
- c:type="GDBusMethodInvocation*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="DBusObjectSkeletonPrivate"
- c:type="GDBusObjectSkeletonPrivate"
- disguised="1">
- </record>
- <record name="DBusPropertyInfo"
- c:type="GDBusPropertyInfo"
- version="2.26"
- glib:type-name="GDBusPropertyInfo"
- glib:get-type="g_dbus_property_info_get_type"
- c:symbol-prefix="dbus_property_info">
- <doc xml:space="preserve">Information about a D-Bus property on a D-Bus interface.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">The name of the D-Bus property, e.g. "SupportedFilesystems".</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="signature" writable="1">
- <doc xml:space="preserve">The D-Bus signature of the property (a single complete type).</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">Access control flags for the property.</doc>
- <type name="DBusPropertyInfoFlags" c:type="GDBusPropertyInfoFlags"/>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <method name="ref"
- c:identifier="g_dbus_property_info_ref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusPropertyInfo" c:type="GDBusPropertyInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusPropertyInfo</doc>
- <type name="DBusPropertyInfo" c:type="GDBusPropertyInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_dbus_property_info_unref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusPropertyInfo.</doc>
- <type name="DBusPropertyInfo" c:type="GDBusPropertyInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="DBusPropertyInfoFlags"
- version="2.26"
- glib:type-name="GDBusPropertyInfoFlags"
- glib:get-type="g_dbus_property_info_flags_get_type"
- c:type="GDBusPropertyInfoFlags">
- <doc xml:space="preserve">Flags describing the access control of a D-Bus property.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_PROPERTY_INFO_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="readable"
- value="1"
- c:identifier="G_DBUS_PROPERTY_INFO_FLAGS_READABLE"
- glib:nick="readable">
- <doc xml:space="preserve">Property is readable.</doc>
- </member>
- <member name="writable"
- value="2"
- c:identifier="G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE"
- glib:nick="writable">
- <doc xml:space="preserve">Property is writable.</doc>
- </member>
- </bitfield>
- <class name="DBusProxy"
- c:symbol-prefix="dbus_proxy"
- c:type="GDBusProxy"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GDBusProxy"
- glib:get-type="g_dbus_proxy_get_type"
- glib:type-struct="DBusProxyClass">
- <doc xml:space="preserve">#GDBusProxy is a base class used for proxies to access a D-Bus
- interface on a remote object. A #GDBusProxy can be constructed for
- both well-known and unique names.
- By default, #GDBusProxy will cache all properties (and listen to
- changes) of the remote object, and proxy all signals that gets
- emitted. This behaviour can be changed by passing suitable
- #GDBusProxyFlags when the proxy is created. If the proxy is for a
- well-known name, the property cache is flushed when the name owner
- vanishes and reloaded when a name owner appears.
- If a #GDBusProxy is used for a well-known name, the owner of the
- name is tracked and can be read from
- #GDBusProxy:g-name-owner. Connect to the #GObject::notify signal to
- get notified of changes. Additionally, only signals and property
- changes emitted from the current name owner are considered and
- calls are always sent to the current name owner. This avoids a
- number of race conditions when the name is lost by one owner and
- claimed by another. However, if no name owner currently exists,
- then calls will be sent to the well-known name which may result in
- the message bus launching an owner (unless
- %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START is set).
- The generic #GDBusProxy::g-properties-changed and
- #GDBusProxy::g-signal signals are not very convenient to work with.
- Therefore, the recommended way of working with proxies is to subclass
- #GDBusProxy, and have more natural properties and signals in your derived
- class. This [example][gdbus-example-gdbus-codegen] shows how this can
- easily be done using the [gdbus-codegen][gdbus-codegen] tool.
- A #GDBusProxy instance can be used from multiple threads but note
- that all signals (e.g. #GDBusProxy::g-signal, #GDBusProxy::g-properties-changed
- and #GObject::notify) are emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread where the instance was constructed.
- An example using a proxy for a well-known name can be found in
- [gdbus-example-watch-proxy.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-example-watch-proxy.c)</doc>
- <implements name="AsyncInitable"/>
- <implements name="DBusInterface"/>
- <implements name="Initable"/>
- <constructor name="new_finish"
- c:identifier="g_dbus_proxy_new_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes creating a #GDBusProxy.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusProxy or %NULL if @error is set. Free with g_object_unref().</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to g_dbus_proxy_new().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_for_bus_finish"
- c:identifier="g_dbus_proxy_new_for_bus_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes creating a #GDBusProxy.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusProxy or %NULL if @error is set. Free with g_object_unref().</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to g_dbus_proxy_new_for_bus().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_for_bus_sync"
- c:identifier="g_dbus_proxy_new_for_bus_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Like g_dbus_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
- #GDBusProxy is used in this [example][gdbus-wellknown-proxy].</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusProxy or %NULL if error is set. Free with g_object_unref().</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">A #GBusType.</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags used when constructing the proxy.</doc>
- <type name="DBusProxyFlags" c:type="GDBusProxyFlags"/>
- </parameter>
- <parameter name="info"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusInterfaceInfo specifying the minimal interface
- that @proxy conforms to or %NULL.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">A bus name (well-known or unique).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">An object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sync"
- c:identifier="g_dbus_proxy_new_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Creates a proxy for accessing @interface_name on the remote object
- at @object_path owned by @name at @connection and synchronously
- loads D-Bus properties unless the
- %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.
- If the %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up
- match rules for signals. Connect to the #GDBusProxy::g-signal signal
- to handle signals from the remote object.
- If @name is a well-known name and the
- %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
- flags aren't set and no name owner currently exists, the message bus
- will be requested to launch a name owner for the name.
- This is a synchronous failable constructor. See g_dbus_proxy_new()
- and g_dbus_proxy_new_finish() for the asynchronous version.
- #GDBusProxy is used in this [example][gdbus-wellknown-proxy].</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusProxy or %NULL if error is set. Free with g_object_unref().</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags used when constructing the proxy.</doc>
- <type name="DBusProxyFlags" c:type="GDBusProxyFlags"/>
- </parameter>
- <parameter name="info"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">An object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="new" c:identifier="g_dbus_proxy_new" version="2.26">
- <doc xml:space="preserve">Creates a proxy for accessing @interface_name on the remote object
- at @object_path owned by @name at @connection and asynchronously
- loads D-Bus properties unless the
- %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used. Connect to
- the #GDBusProxy::g-properties-changed signal to get notified about
- property changes.
- If the %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up
- match rules for signals. Connect to the #GDBusProxy::g-signal signal
- to handle signals from the remote object.
- If @name is a well-known name and the
- %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
- flags aren't set and no name owner currently exists, the message bus
- will be requested to launch a name owner for the name.
- This is a failable asynchronous constructor - when the proxy is
- ready, @callback will be invoked and you can use
- g_dbus_proxy_new_finish() to get the result.
- See g_dbus_proxy_new_sync() and for a synchronous version of this constructor.
- #GDBusProxy is used in this [example][gdbus-wellknown-proxy].</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags used when constructing the proxy.</doc>
- <type name="DBusProxyFlags" c:type="GDBusProxyFlags"/>
- </parameter>
- <parameter name="info"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- <parameter name="name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">An object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="8">
- <doc xml:space="preserve">Callback function to invoke when the proxy is ready.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_bus"
- c:identifier="g_dbus_proxy_new_for_bus"
- version="2.26">
- <doc xml:space="preserve">Like g_dbus_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
- #GDBusProxy is used in this [example][gdbus-wellknown-proxy].</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">A #GBusType.</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags used when constructing the proxy.</doc>
- <type name="DBusProxyFlags" c:type="GDBusProxyFlags"/>
- </parameter>
- <parameter name="info"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">A bus name (well-known or unique).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">An object path.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus interface name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="8">
- <doc xml:space="preserve">Callback function to invoke when the proxy is ready.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="g_properties_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="changed_properties" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="invalidated_properties" transfer-ownership="none">
- <type name="utf8" c:type="const gchar* const*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="g_signal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="sender_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="call" c:identifier="g_dbus_proxy_call" version="2.26">
- <doc xml:space="preserve">Asynchronously invokes the @method_name method on @proxy.
- If @method_name contains any dots, then @name is split into interface and
- method name parts. This allows using @proxy for invoking methods on
- other interfaces.
- If the #GDBusConnection associated with @proxy is closed then
- the operation will fail with %G_IO_ERROR_CLOSED. If
- @cancellable is canceled, the operation will fail with
- %G_IO_ERROR_CANCELLED. If @parameters contains a value not
- compatible with the D-Bus protocol, the operation fails with
- %G_IO_ERROR_INVALID_ARGUMENT.
- If the @parameters #GVariant is floating, it is consumed. This allows
- convenient 'inline' use of g_variant_new(), e.g.:
- |[<!-- language="C" -->
- g_dbus_proxy_call (proxy,
- "TwoStrings",
- g_variant_new ("(ss)",
- "Thing One",
- "Thing Two"),
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- NULL,
- (GAsyncReadyCallback) two_strings_done,
- &data);
- ]|
- If @proxy has an expected interface (see
- #GDBusProxy:g-interface-info) and @method_name is referenced by it,
- then the return value is checked against the return type.
- This is an asynchronous method. When the operation is finished,
- @callback will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this method from.
- You can then call g_dbus_proxy_call_finish() to get the result of
- the operation. See g_dbus_proxy_call_sync() for the synchronous
- version of this method.
- If @callback is %NULL then the D-Bus method call message will be sent with
- the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">Name of method to invoke.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal or %NULL if not passing parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusCallFlags enumeration.</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">The timeout in milliseconds (with %G_MAXINT meaning
- "infinite") or -1 to use the proxy default timeout.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't
- care about the result of the method invocation.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_finish"
- c:identifier="g_dbus_proxy_call_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_proxy_call().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_proxy_call().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_sync"
- c:identifier="g_dbus_proxy_call_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously invokes the @method_name method on @proxy.
- If @method_name contains any dots, then @name is split into interface and
- method name parts. This allows using @proxy for invoking methods on
- other interfaces.
- If the #GDBusConnection associated with @proxy is disconnected then
- the operation will fail with %G_IO_ERROR_CLOSED. If
- @cancellable is canceled, the operation will fail with
- %G_IO_ERROR_CANCELLED. If @parameters contains a value not
- compatible with the D-Bus protocol, the operation fails with
- %G_IO_ERROR_INVALID_ARGUMENT.
- If the @parameters #GVariant is floating, it is consumed. This allows
- convenient 'inline' use of g_variant_new(), e.g.:
- |[<!-- language="C" -->
- g_dbus_proxy_call_sync (proxy,
- "TwoStrings",
- g_variant_new ("(ss)",
- "Thing One",
- "Thing Two"),
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- NULL,
- &error);
- ]|
- The calling thread is blocked until a reply is received. See
- g_dbus_proxy_call() for the asynchronous version of this
- method.
- If @proxy has an expected interface (see
- #GDBusProxy:g-interface-info) and @method_name is referenced by it,
- then the return value is checked against the return type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">Name of method to invoke.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal
- or %NULL if not passing parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusCallFlags enumeration.</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">The timeout in milliseconds (with %G_MAXINT meaning
- "infinite") or -1 to use the proxy default timeout.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_with_unix_fd_list"
- c:identifier="g_dbus_proxy_call_with_unix_fd_list"
- version="2.30">
- <doc xml:space="preserve">Like g_dbus_proxy_call() but also takes a #GUnixFDList object.
- This method is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">Name of method to invoke.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal or %NULL if not passing parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusCallFlags enumeration.</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">The timeout in milliseconds (with %G_MAXINT meaning
- "infinite") or -1 to use the proxy default timeout.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="fd_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GUnixFDList or %NULL.</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't
- care about the result of the method invocation.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_with_unix_fd_list_finish"
- c:identifier="g_dbus_proxy_call_with_unix_fd_list_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_proxy_call_with_unix_fd_list().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="out_fd_list"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Return location for a #GUnixFDList or %NULL.</doc>
- <type name="UnixFDList" c:type="GUnixFDList**"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_proxy_call_with_unix_fd_list().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="call_with_unix_fd_list_sync"
- c:identifier="g_dbus_proxy_call_with_unix_fd_list_sync"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Like g_dbus_proxy_call_sync() but also takes and returns #GUnixFDList objects.
- This method is only available on UNIX.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set. Otherwise a #GVariant tuple with
- return values. Free with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="method_name" transfer-ownership="none">
- <doc xml:space="preserve">Name of method to invoke.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal
- or %NULL if not passing parameters.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusCallFlags enumeration.</doc>
- <type name="DBusCallFlags" c:type="GDBusCallFlags"/>
- </parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">The timeout in milliseconds (with %G_MAXINT meaning
- "infinite") or -1 to use the proxy default timeout.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="fd_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GUnixFDList or %NULL.</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- <parameter name="out_fd_list"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Return location for a #GUnixFDList or %NULL.</doc>
- <type name="UnixFDList" c:type="GUnixFDList**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_cached_property"
- c:identifier="g_dbus_proxy_get_cached_property"
- version="2.26">
- <doc xml:space="preserve">Looks up the value for a property from the cache. This call does no
- blocking IO.
- If @proxy has an expected interface (see
- #GDBusProxy:g-interface-info) and @property_name is referenced by
- it, then @value is checked against the type of the property.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A reference to the #GVariant instance that holds the value
- for @property_name or %NULL if the value is not in the cache. The
- returned reference must be freed with g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">Property name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_cached_property_names"
- c:identifier="g_dbus_proxy_get_cached_property_names"
- version="2.26">
- <doc xml:space="preserve">Gets the names of all cached properties on @proxy.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A %NULL-terminated array of strings or %NULL if
- @proxy has no cached properties. Free the returned array with
- g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_connection"
- c:identifier="g_dbus_proxy_get_connection"
- version="2.26">
- <doc xml:space="preserve">Gets the connection @proxy is for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection owned by @proxy. Do not free.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_default_timeout"
- c:identifier="g_dbus_proxy_get_default_timeout"
- version="2.26">
- <doc xml:space="preserve">Gets the timeout to use if -1 (specifying default timeout) is
- passed as @timeout_msec in the g_dbus_proxy_call() and
- g_dbus_proxy_call_sync() functions.
- See the #GDBusProxy:g-default-timeout property for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Timeout to use for @proxy.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_dbus_proxy_get_flags"
- version="2.26">
- <doc xml:space="preserve">Gets the flags that @proxy was constructed with.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusProxyFlags enumeration.</doc>
- <type name="DBusProxyFlags" c:type="GDBusProxyFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_interface_info"
- c:identifier="g_dbus_proxy_get_interface_info"
- version="2.26">
- <doc xml:space="preserve">Returns the #GDBusInterfaceInfo, if any, specifying the interface
- that @proxy conforms to. See the #GDBusProxy:g-interface-info
- property for more details.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusInterfaceInfo or %NULL. Do not unref the returned
- object, it is owned by @proxy.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_interface_name"
- c:identifier="g_dbus_proxy_get_interface_name"
- version="2.26">
- <doc xml:space="preserve">Gets the D-Bus interface name @proxy is for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @proxy. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name"
- c:identifier="g_dbus_proxy_get_name"
- version="2.26">
- <doc xml:space="preserve">Gets the name that @proxy was constructed for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @proxy. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name_owner"
- c:identifier="g_dbus_proxy_get_name_owner"
- version="2.26">
- <doc xml:space="preserve">The unique name that owns the name that @proxy is for or %NULL if
- no-one currently owns that name. You may connect to the
- #GObject::notify signal to track changes to the
- #GDBusProxy:g-name-owner property.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The name owner or %NULL if no name owner exists. Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_object_path"
- c:identifier="g_dbus_proxy_get_object_path"
- version="2.26">
- <doc xml:space="preserve">Gets the object path @proxy is for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A string owned by @proxy. Do not free.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_cached_property"
- c:identifier="g_dbus_proxy_set_cached_property"
- version="2.26">
- <doc xml:space="preserve">If @value is not %NULL, sets the cached value for the property with
- name @property_name to the value in @value.
- If @value is %NULL, then the cached value is removed from the
- property cache.
- If @proxy has an expected interface (see
- #GDBusProxy:g-interface-info) and @property_name is referenced by
- it, then @value is checked against the type of the property.
- If the @value #GVariant is floating, it is consumed. This allows
- convenient 'inline' use of g_variant_new(), e.g.
- |[<!-- language="C" -->
- g_dbus_proxy_set_cached_property (proxy,
- "SomeProperty",
- g_variant_new ("(si)",
- "A String",
- 42));
- ]|
- Normally you will not need to use this method since @proxy
- is tracking changes using the
- `org.freedesktop.DBus.Properties.PropertiesChanged`
- D-Bus signal. However, for performance reasons an object may
- decide to not use this signal for some properties and instead
- use a proprietary out-of-band mechanism to transmit changes.
- As a concrete example, consider an object with a property
- `ChatroomParticipants` which is an array of strings. Instead of
- transmitting the same (long) array every time the property changes,
- it is more efficient to only transmit the delta using e.g. signals
- `ChatroomParticipantJoined(String name)` and
- `ChatroomParticipantParted(String name)`.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">Property name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Value for the property or %NULL to remove it from the cache.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default_timeout"
- c:identifier="g_dbus_proxy_set_default_timeout"
- version="2.26">
- <doc xml:space="preserve">Sets the timeout to use if -1 (specifying default timeout) is
- passed as @timeout_msec in the g_dbus_proxy_call() and
- g_dbus_proxy_call_sync() functions.
- See the #GDBusProxy:g-default-timeout property for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy.</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="timeout_msec" transfer-ownership="none">
- <doc xml:space="preserve">Timeout in milliseconds.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_interface_info"
- c:identifier="g_dbus_proxy_set_interface_info"
- version="2.26">
- <doc xml:space="preserve">Ensure that interactions with @proxy conform to the given
- interface. See the #GDBusProxy:g-interface-info property for more
- details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusProxy</doc>
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </instance-parameter>
- <parameter name="info"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Minimum interface this proxy conforms to or %NULL to unset.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
- </parameter>
- </parameters>
- </method>
- <property name="g-bus-type"
- version="2.26"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">If this property is not %G_BUS_TYPE_NONE, then
- #GDBusProxy:g-connection must be %NULL and will be set to the
- #GDBusConnection obtained by calling g_bus_get() with the value
- of this property.</doc>
- <type name="BusType"/>
- </property>
- <property name="g-connection"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GDBusConnection the proxy is for.</doc>
- <type name="DBusConnection"/>
- </property>
- <property name="g-default-timeout"
- version="2.26"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The timeout to use if -1 (specifying default timeout) is passed
- as @timeout_msec in the g_dbus_proxy_call() and
- g_dbus_proxy_call_sync() functions.
- This allows applications to set a proxy-wide timeout for all
- remote method invocations on the proxy. If this property is -1,
- the default timeout (typically 25 seconds) is used. If set to
- %G_MAXINT, then no timeout is used.</doc>
- <type name="gint" c:type="gint"/>
- </property>
- <property name="g-flags"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusProxyFlags enumeration.</doc>
- <type name="DBusProxyFlags"/>
- </property>
- <property name="g-interface-info"
- version="2.26"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Ensure that interactions with this proxy conform to the given
- interface. This is mainly to ensure that malformed data received
- from the other peer is ignored. The given #GDBusInterfaceInfo is
- said to be the "expected interface".
- The checks performed are:
- - When completing a method call, if the type signature of
- the reply message isn't what's expected, the reply is
- discarded and the #GError is set to %G_IO_ERROR_INVALID_ARGUMENT.
- - Received signals that have a type signature mismatch are dropped and
- a warning is logged via g_warning().
- - Properties received via the initial `GetAll()` call or via the
- `::PropertiesChanged` signal (on the
- [org.freedesktop.DBus.Properties](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties)
- interface) or set using g_dbus_proxy_set_cached_property()
- with a type signature mismatch are ignored and a warning is
- logged via g_warning().
- Note that these checks are never done on methods, signals and
- properties that are not referenced in the given
- #GDBusInterfaceInfo, since extending a D-Bus interface on the
- service-side is not considered an ABI break.</doc>
- <type name="DBusInterfaceInfo"/>
- </property>
- <property name="g-interface-name"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus interface name the proxy is for.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="g-name"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The well-known or unique name that the proxy is for.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="g-name-owner" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">The unique name that owns #GDBusProxy:g-name or %NULL if no-one
- currently owns that name. You may connect to #GObject::notify signal to
- track changes to this property.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="g-object-path"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The object path the proxy is for.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DBusProxyPrivate" c:type="GDBusProxyPrivate*"/>
- </field>
- <glib:signal name="g-properties-changed" when="last" version="2.26">
- <doc xml:space="preserve">Emitted when one or more D-Bus properties on @proxy changes. The
- local cache has already been updated when this signal fires. Note
- that both @changed_properties and @invalidated_properties are
- guaranteed to never be %NULL (either may be empty though).
- If the proxy has the flag
- %G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES set, then
- @invalidated_properties will always be empty.
- This signal corresponds to the
- `PropertiesChanged` D-Bus signal on the
- `org.freedesktop.DBus.Properties` interface.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="changed_properties" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant containing the properties that changed</doc>
- <type name="GLib.Variant"/>
- </parameter>
- <parameter name="invalidated_properties" transfer-ownership="none">
- <doc xml:space="preserve">A %NULL terminated array of properties that was invalidated</doc>
- <array>
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="g-signal" when="last" version="2.26">
- <doc xml:space="preserve">Emitted when a signal from the remote object and interface that @proxy is for, has been received.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="sender_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The sender of the signal or %NULL if the connection is not a bus connection.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the signal.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal.</doc>
- <type name="GLib.Variant"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="DBusProxyClass"
- c:type="GDBusProxyClass"
- glib:is-gtype-struct-for="DBusProxy"
- version="2.26">
- <doc xml:space="preserve">Class structure for #GDBusProxy.</doc>
- <field name="parent_class" readable="0" private="1">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="g_properties_changed">
- <callback name="g_properties_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </parameter>
- <parameter name="changed_properties" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="invalidated_properties" transfer-ownership="none">
- <type name="utf8" c:type="const gchar* const*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="g_signal">
- <callback name="g_signal">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="proxy" transfer-ownership="none">
- <type name="DBusProxy" c:type="GDBusProxy*"/>
- </parameter>
- <parameter name="sender_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="32">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <bitfield name="DBusProxyFlags"
- version="2.26"
- glib:type-name="GDBusProxyFlags"
- glib:get-type="g_dbus_proxy_flags_get_type"
- c:type="GDBusProxyFlags">
- <doc xml:space="preserve">Flags used when constructing an instance of a #GDBusProxy derived class.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_PROXY_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="do_not_load_properties"
- value="1"
- c:identifier="G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES"
- glib:nick="do-not-load-properties">
- <doc xml:space="preserve">Don't load properties.</doc>
- </member>
- <member name="do_not_connect_signals"
- value="2"
- c:identifier="G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS"
- glib:nick="do-not-connect-signals">
- <doc xml:space="preserve">Don't connect to signals on the remote object.</doc>
- </member>
- <member name="do_not_auto_start"
- value="4"
- c:identifier="G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
- glib:nick="do-not-auto-start">
- <doc xml:space="preserve">If the proxy is for a well-known name,
- do not ask the bus to launch an owner during proxy initialization or a method call.
- This flag is only meaningful in proxies for well-known names.</doc>
- </member>
- <member name="get_invalidated_properties"
- value="8"
- c:identifier="G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES"
- glib:nick="get-invalidated-properties">
- <doc xml:space="preserve">If set, the property value for any <emphasis>invalidated property</emphasis> will be (asynchronously) retrieved upon receiving the <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties">PropertiesChanged</ulink> D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32.</doc>
- </member>
- <member name="do_not_auto_start_at_construction"
- value="16"
- c:identifier="G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION"
- glib:nick="do-not-auto-start-at-construction">
- <doc xml:space="preserve">If the proxy is for a well-known name,
- do not ask the bus to launch an owner during proxy initialization, but allow it to be
- autostarted by a method call. This flag is only meaningful in proxies for well-known names,
- and only if %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START is not also specified.</doc>
- </member>
- </bitfield>
- <record name="DBusProxyPrivate" c:type="GDBusProxyPrivate" disguised="1">
- </record>
- <callback name="DBusProxyTypeFunc"
- c:type="GDBusProxyTypeFunc"
- version="2.30">
- <doc xml:space="preserve">Function signature for a function used to determine the #GType to
- use for an interface proxy (if @interface_name is not %NULL) or
- object proxy (if @interface_name is %NULL).
- This function is called in the
- [thread-default main loop][g-main-context-push-thread-default]
- that @manager was constructed in.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GType to use for the remote object. The returned type
- must be a #GDBusProxy or #GDBusObjectProxy -derived
- type.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="manager" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusObjectManagerClient.</doc>
- <type name="DBusObjectManagerClient"
- c:type="GDBusObjectManagerClient*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path of the remote object.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The interface name of the remote object or %NULL if a #GDBusObjectProxy #GType is requested.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">User data.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="DBusSendMessageFlags"
- version="2.26"
- glib:type-name="GDBusSendMessageFlags"
- glib:get-type="g_dbus_send_message_flags_get_type"
- c:type="GDBusSendMessageFlags">
- <doc xml:space="preserve">Flags used when sending #GDBusMessages on a #GDBusConnection.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_SEND_MESSAGE_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="preserve_serial"
- value="1"
- c:identifier="G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL"
- glib:nick="preserve-serial">
- <doc xml:space="preserve">Do not automatically
- assign a serial number from the #GDBusConnection object when
- sending a message.</doc>
- </member>
- </bitfield>
- <class name="DBusServer"
- c:symbol-prefix="dbus_server"
- c:type="GDBusServer"
- version="2.26"
- parent="GObject.Object"
- glib:type-name="GDBusServer"
- glib:get-type="g_dbus_server_get_type">
- <doc xml:space="preserve">#GDBusServer is a helper for listening to and accepting D-Bus
- connections. This can be used to create a new D-Bus server, allowing two
- peers to use the D-Bus protocol for their own specialized communication.
- A server instance provided in this way will not perform message routing or
- implement the org.freedesktop.DBus interface.
- To just export an object on a well-known name on a message bus, such as the
- session or system bus, you should instead use g_bus_own_name().
- An example of peer-to-peer communication with G-DBus can be found
- in [gdbus-example-peer.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-example-peer.c).</doc>
- <implements name="Initable"/>
- <constructor name="new_sync"
- c:identifier="g_dbus_server_new_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Creates a new D-Bus server that listens on the first address in
- @address that works.
- Once constructed, you can use g_dbus_server_get_client_address() to
- get a D-Bus address string that clients can use to connect.
- Connect to the #GDBusServer::new-connection signal to handle
- incoming connections.
- The returned #GDBusServer isn't active - you have to start it with
- g_dbus_server_start().
- #GDBusServer is used in this [example][gdbus-peer-to-peer].
- This is a synchronous failable constructor. See
- g_dbus_server_new() for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GDBusServer or %NULL if @error is set. Free with
- g_object_unref().</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus address.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusServerFlags enumeration.</doc>
- <type name="DBusServerFlags" c:type="GDBusServerFlags"/>
- </parameter>
- <parameter name="guid" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus GUID.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="observer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GDBusAuthObserver or %NULL.</doc>
- <type name="DBusAuthObserver" c:type="GDBusAuthObserver*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_client_address"
- c:identifier="g_dbus_server_get_client_address"
- version="2.26">
- <doc xml:space="preserve">Gets a D-Bus address string that can be used by clients to connect
- to @server.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus address string. Do not free, the string is owned
- by @server.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="server" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusServer.</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_dbus_server_get_flags"
- version="2.26">
- <doc xml:space="preserve">Gets the flags for @server.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A set of flags from the #GDBusServerFlags enumeration.</doc>
- <type name="DBusServerFlags" c:type="GDBusServerFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="server" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusServer.</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_guid"
- c:identifier="g_dbus_server_get_guid"
- version="2.26">
- <doc xml:space="preserve">Gets the GUID for @server.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus GUID. Do not free this string, it is owned by @server.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="server" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusServer.</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_active"
- c:identifier="g_dbus_server_is_active"
- version="2.26">
- <doc xml:space="preserve">Gets whether @server is active.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if server is active, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="server" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusServer.</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="start" c:identifier="g_dbus_server_start" version="2.26">
- <doc xml:space="preserve">Starts @server.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="server" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusServer.</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stop" c:identifier="g_dbus_server_stop" version="2.26">
- <doc xml:space="preserve">Stops @server.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="server" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusServer.</doc>
- <type name="DBusServer" c:type="GDBusServer*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="active" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">Whether the server is currently active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="address"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus address to listen on.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="authentication-observer"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusAuthObserver object to assist in the authentication process or %NULL.</doc>
- <type name="DBusAuthObserver"/>
- </property>
- <property name="client-address" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus address that clients can use.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="flags"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GDBusServerFlags enumeration.</doc>
- <type name="DBusServerFlags"/>
- </property>
- <property name="guid"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The guid of the server.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <glib:signal name="new-connection" when="last" version="2.26">
- <doc xml:space="preserve">Emitted when a new authenticated connection has been made. Use
- g_dbus_connection_get_peer_credentials() to figure out what
- identity (if any), was authenticated.
- If you want to accept the connection, take a reference to the
- @connection object and return %TRUE. When you are done with the
- connection call g_dbus_connection_close() and give up your
- reference. Note that the other peer may disconnect at any time -
- a typical thing to do when accepting a connection is to listen to
- the #GDBusConnection::closed signal.
- If #GDBusServer:flags contains %G_DBUS_SERVER_FLAGS_RUN_IN_THREAD
- then the signal is emitted in a new thread dedicated to the
- connection. Otherwise the signal is emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread that @server was constructed in.
- You are guaranteed that signal handlers for this signal runs
- before incoming messages on @connection are processed. This means
- that it's suitable to call g_dbus_connection_register_object() or
- similar from the signal handler.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to claim @connection, %FALSE to let other handlers
- run.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection for the new connection.</doc>
- <type name="DBusConnection"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <bitfield name="DBusServerFlags"
- version="2.26"
- glib:type-name="GDBusServerFlags"
- glib:get-type="g_dbus_server_flags_get_type"
- c:type="GDBusServerFlags">
- <doc xml:space="preserve">Flags used when creating a #GDBusServer.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_SERVER_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="run_in_thread"
- value="1"
- c:identifier="G_DBUS_SERVER_FLAGS_RUN_IN_THREAD"
- glib:nick="run-in-thread">
- <doc xml:space="preserve">All #GDBusServer::new-connection
- signals will run in separated dedicated threads (see signal for
- details).</doc>
- </member>
- <member name="authentication_allow_anonymous"
- value="2"
- c:identifier="G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS"
- glib:nick="authentication-allow-anonymous">
- <doc xml:space="preserve">Allow the anonymous
- authentication method.</doc>
- </member>
- </bitfield>
- <callback name="DBusSignalCallback"
- c:type="GDBusSignalCallback"
- version="2.26">
- <doc xml:space="preserve">Signature for callback function used in g_dbus_connection_signal_subscribe().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender_name" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the sender of the signal.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that the signal was emitted on.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the interface.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="signal_name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the signal.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant tuple with parameters for the signal.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">User data passed when subscribing to the signal.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="DBusSignalFlags"
- version="2.26"
- glib:type-name="GDBusSignalFlags"
- glib:get-type="g_dbus_signal_flags_get_type"
- c:type="GDBusSignalFlags">
- <doc xml:space="preserve">Flags used when subscribing to signals via g_dbus_connection_signal_subscribe().</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_SIGNAL_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="no_match_rule"
- value="1"
- c:identifier="G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE"
- glib:nick="no-match-rule">
- <doc xml:space="preserve">Don't actually send the AddMatch
- D-Bus call for this signal subscription. This gives you more control
- over which match rules you add (but you must add them manually).</doc>
- </member>
- <member name="match_arg0_namespace"
- value="2"
- c:identifier="G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE"
- glib:nick="match-arg0-namespace">
- <doc xml:space="preserve">Match first arguments that
- contain a bus or interface name with the given namespace.</doc>
- </member>
- <member name="match_arg0_path"
- value="4"
- c:identifier="G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH"
- glib:nick="match-arg0-path">
- <doc xml:space="preserve">Match first arguments that
- contain an object path that is either equivalent to the given path,
- or one of the paths is a subpath of the other.</doc>
- </member>
- </bitfield>
- <record name="DBusSignalInfo"
- c:type="GDBusSignalInfo"
- version="2.26"
- glib:type-name="GDBusSignalInfo"
- glib:get-type="g_dbus_signal_info_get_type"
- c:symbol-prefix="dbus_signal_info">
- <doc xml:space="preserve">Information about a signal on a D-Bus interface.</doc>
- <field name="ref_count" writable="1">
- <doc xml:space="preserve">The reference count or -1 if statically allocated.</doc>
- <type name="gint" c:type="volatile gint"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">The name of the D-Bus signal, e.g. "NameOwnerChanged".</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="args" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no arguments.</doc>
- <array c:type="GDBusArgInfo**">
- <type name="DBusArgInfo" c:type="GDBusArgInfo*"/>
- </array>
- </field>
- <field name="annotations" writable="1">
- <doc xml:space="preserve">A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </field>
- <method name="ref" c:identifier="g_dbus_signal_info_ref" version="2.26">
- <doc xml:space="preserve">If @info is statically allocated does nothing. Otherwise increases
- the reference count.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The same @info.</doc>
- <type name="DBusSignalInfo" c:type="GDBusSignalInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusSignalInfo</doc>
- <type name="DBusSignalInfo" c:type="GDBusSignalInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_dbus_signal_info_unref"
- version="2.26">
- <doc xml:space="preserve">If @info is statically allocated, does nothing. Otherwise decreases
- the reference count of @info. When its reference count drops to 0,
- the memory used is freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusSignalInfo.</doc>
- <type name="DBusSignalInfo" c:type="GDBusSignalInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <callback name="DBusSubtreeDispatchFunc"
- c:type="GDBusSubtreeDispatchFunc"
- version="2.26">
- <doc xml:space="preserve">The type of the @dispatch function in #GDBusSubtreeVTable.
- Subtrees are flat. @node, if non-%NULL, is always exactly one
- segment of the object path (ie: it never contains a slash).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusInterfaceVTable or %NULL if you don't want to handle the methods.</doc>
- <type name="DBusInterfaceVTable" c:type="const GDBusInterfaceVTable*"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the remote caller.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that was registered with g_dbus_connection_register_subtree().</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interface_name" transfer-ownership="none">
- <doc xml:space="preserve">The D-Bus interface name that the method call or property access is for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="node" transfer-ownership="none">
- <doc xml:space="preserve">A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="out_user_data" transfer-ownership="none">
- <doc xml:space="preserve">Return location for user data to pass to functions in the returned #GDBusInterfaceVTable (never %NULL).</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">The @user_data #gpointer passed to g_dbus_connection_register_subtree().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="DBusSubtreeEnumerateFunc"
- c:type="GDBusSubtreeEnumerateFunc"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">The type of the @enumerate function in #GDBusSubtreeVTable.
- This function is called when generating introspection data and also
- when preparing to dispatch incoming messages in the event that the
- %G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is not
- specified (ie: to verify that the object path is valid).
- Hierarchies are not supported; the items that you return should not
- contain the '/' character.
- The return value will be freed with g_strfreev().</doc>
- <return-value>
- <doc xml:space="preserve">A newly allocated array of strings for node names that are children of @object_path.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the remote caller.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that was registered with g_dbus_connection_register_subtree().</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">The @user_data #gpointer passed to g_dbus_connection_register_subtree().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="DBusSubtreeFlags"
- version="2.26"
- glib:type-name="GDBusSubtreeFlags"
- glib:get-type="g_dbus_subtree_flags_get_type"
- c:type="GDBusSubtreeFlags">
- <doc xml:space="preserve">Flags passed to g_dbus_connection_register_subtree().</doc>
- <member name="none"
- value="0"
- c:identifier="G_DBUS_SUBTREE_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="dispatch_to_unenumerated_nodes"
- value="1"
- c:identifier="G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES"
- glib:nick="dispatch-to-unenumerated-nodes">
- <doc xml:space="preserve">Method calls to objects not in the enumerated range
- will still be dispatched. This is useful if you want
- to dynamically spawn objects in the subtree.</doc>
- </member>
- </bitfield>
- <callback name="DBusSubtreeIntrospectFunc"
- c:type="GDBusSubtreeIntrospectFunc"
- version="2.26">
- <doc xml:space="preserve">The type of the @introspect function in #GDBusSubtreeVTable.
- Subtrees are flat. @node, if non-%NULL, is always exactly one
- segment of the object path (ie: it never contains a slash).
- This function should return %NULL to indicate that there is no object
- at this node.
- If this function returns non-%NULL, the return value is expected to
- be a %NULL-terminated array of pointers to #GDBusInterfaceInfo
- structures describing the interfaces implemented by @node. This
- array will have g_dbus_interface_info_unref() called on each item
- before being freed with g_free().
- The difference between returning %NULL and an array containing zero
- items is that the standard DBus interfaces will returned to the
- remote introspector in the empty array case, but not in the %NULL
- case.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A %NULL-terminated array of pointers to #GDBusInterfaceInfo, or %NULL.</doc>
- <type name="DBusInterfaceInfo" c:type="GDBusInterfaceInfo**"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="sender" transfer-ownership="none">
- <doc xml:space="preserve">The unique bus name of the remote caller.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object_path" transfer-ownership="none">
- <doc xml:space="preserve">The object path that was registered with g_dbus_connection_register_subtree().</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="node" transfer-ownership="none">
- <doc xml:space="preserve">A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">The @user_data #gpointer passed to g_dbus_connection_register_subtree().</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="DBusSubtreeVTable"
- c:type="GDBusSubtreeVTable"
- version="2.26">
- <doc xml:space="preserve">Virtual table for handling subtrees registered with g_dbus_connection_register_subtree().</doc>
- <field name="enumerate" introspectable="0" writable="1">
- <doc xml:space="preserve">Function for enumerating child nodes.</doc>
- <type name="DBusSubtreeEnumerateFunc"
- c:type="GDBusSubtreeEnumerateFunc"/>
- </field>
- <field name="introspect" writable="1">
- <doc xml:space="preserve">Function for introspecting a child node.</doc>
- <type name="DBusSubtreeIntrospectFunc"
- c:type="GDBusSubtreeIntrospectFunc"/>
- </field>
- <field name="dispatch" writable="1">
- <doc xml:space="preserve">Function for dispatching a remote call on a child node.</doc>
- <type name="DBusSubtreeDispatchFunc"
- c:type="GDBusSubtreeDispatchFunc"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <constant name="DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME"
- value="gio-desktop-app-info-lookup"
- c:type="G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME">
- <doc xml:space="preserve">Extension point for default handler to URI association. See
- [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <class name="DataInputStream"
- c:symbol-prefix="data_input_stream"
- c:type="GDataInputStream"
- parent="BufferedInputStream"
- glib:type-name="GDataInputStream"
- glib:get-type="g_data_input_stream_get_type"
- glib:type-struct="DataInputStreamClass">
- <doc xml:space="preserve">Data input stream implements #GInputStream and includes functions for
- reading structured data directly from a binary input stream.</doc>
- <implements name="Seekable"/>
- <constructor name="new" c:identifier="g_data_input_stream_new">
- <doc xml:space="preserve">Creates a new data input stream for the @base_stream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_byte_order"
- c:identifier="g_data_input_stream_get_byte_order">
- <doc xml:space="preserve">Gets the byte order for the data input stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @stream's current #GDataStreamByteOrder.</doc>
- <type name="DataStreamByteOrder" c:type="GDataStreamByteOrder"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_newline_type"
- c:identifier="g_data_input_stream_get_newline_type">
- <doc xml:space="preserve">Gets the current newline type for the @stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GDataStreamNewlineType for the given @stream.</doc>
- <type name="DataStreamNewlineType" c:type="GDataStreamNewlineType"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="read_byte"
- c:identifier="g_data_input_stream_read_byte"
- throws="1">
- <doc xml:space="preserve">Reads an unsigned 8-bit/1-byte value from @stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 8-bit/1-byte value read from the @stream or %0
- if an error occurred.</doc>
- <type name="guint8" c:type="guchar"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_int16"
- c:identifier="g_data_input_stream_read_int16"
- throws="1">
- <doc xml:space="preserve">Reads a 16-bit/2-byte value from @stream.
- In order to get the correct byte order for this read operation,
- see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a signed 16-bit/2-byte value read from @stream or %0 if
- an error occurred.</doc>
- <type name="gint16" c:type="gint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_int32"
- c:identifier="g_data_input_stream_read_int32"
- throws="1">
- <doc xml:space="preserve">Reads a signed 32-bit/4-byte value from @stream.
- In order to get the correct byte order for this read operation,
- see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a signed 32-bit/4-byte value read from the @stream or %0 if
- an error occurred.</doc>
- <type name="gint32" c:type="gint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_int64"
- c:identifier="g_data_input_stream_read_int64"
- throws="1">
- <doc xml:space="preserve">Reads a 64-bit/8-byte value from @stream.
- In order to get the correct byte order for this read operation,
- see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a signed 64-bit/8-byte value read from @stream or %0 if
- an error occurred.</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_line"
- c:identifier="g_data_input_stream_read_line"
- throws="1">
- <doc xml:space="preserve">Reads a line from the data input stream. Note that no encoding
- checks or conversion is performed; the input is not guaranteed to
- be UTF-8, and may in fact have embedded NUL characters.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">
- a NUL terminated byte array with the line that was read in
- (without the newlines). Set @length to a #gsize to get the length
- of the read line. On an error, it will return %NULL and @error
- will be set. If there's no content to read, it will still return
- %NULL, but @error won't be set.</doc>
- <array c:type="char*">
- <type name="guint8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_line_async"
- c:identifier="g_data_input_stream_read_line_async"
- version="2.20">
- <doc xml:space="preserve">The asynchronous version of g_data_input_stream_read_line(). It is
- an error to have two outstanding calls to this function.
- When the operation is finished, @callback will be called. You
- can then call g_data_input_stream_read_line_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_line_finish"
- c:identifier="g_data_input_stream_read_line_finish"
- version="2.20"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous call started by
- g_data_input_stream_read_line_async(). Note the warning about
- string encoding in g_data_input_stream_read_line() applies here as
- well.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">
- a NUL-terminated byte array with the line that was read in
- (without the newlines). Set @length to a #gsize to get the length
- of the read line. On an error, it will return %NULL and @error
- will be set. If there's no content to read, it will still return
- %NULL, but @error won't be set.</doc>
- <array c:type="char*">
- <type name="guint8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult that was provided to the callback.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_line_finish_utf8"
- c:identifier="g_data_input_stream_read_line_finish_utf8"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous call started by
- g_data_input_stream_read_line_async().</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a string with the line that
- was read in (without the newlines). Set @length to a #gsize to
- get the length of the read line. On an error, it will return
- %NULL and @error will be set. For UTF-8 conversion errors, the set
- error domain is %G_CONVERT_ERROR. If there's no content to read,
- it will still return %NULL, but @error won't be set.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult that was provided to the callback.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_line_utf8"
- c:identifier="g_data_input_stream_read_line_utf8"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Reads a UTF-8 encoded line from the data input stream.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a NUL terminated UTF-8 string
- with the line that was read in (without the newlines). Set
- @length to a #gsize to get the length of the read line. On an
- error, it will return %NULL and @error will be set. For UTF-8
- conversion errors, the set error domain is %G_CONVERT_ERROR. If
- there's no content to read, it will still return %NULL, but @error
- won't be set.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_uint16"
- c:identifier="g_data_input_stream_read_uint16"
- throws="1">
- <doc xml:space="preserve">Reads an unsigned 16-bit/2-byte value from @stream.
- In order to get the correct byte order for this read operation,
- see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 16-bit/2-byte value read from the @stream or %0 if
- an error occurred.</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_uint32"
- c:identifier="g_data_input_stream_read_uint32"
- throws="1">
- <doc xml:space="preserve">Reads an unsigned 32-bit/4-byte value from @stream.
- In order to get the correct byte order for this read operation,
- see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 32-bit/4-byte value read from the @stream or %0 if
- an error occurred.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_uint64"
- c:identifier="g_data_input_stream_read_uint64"
- throws="1">
- <doc xml:space="preserve">Reads an unsigned 64-bit/8-byte value from @stream.
- In order to get the correct byte order for this read operation,
- see g_data_input_stream_get_byte_order().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 64-bit/8-byte read from @stream or %0 if
- an error occurred.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_until"
- c:identifier="g_data_input_stream_read_until"
- throws="1">
- <doc xml:space="preserve">Reads a string from the data input stream, up to the first
- occurrence of any of the stop characters.
- Note that, in contrast to g_data_input_stream_read_until_async(),
- this function consumes the stop character that it finds.
- Don't use this function in new code. Its functionality is
- inconsistent with g_data_input_stream_read_until_async(). Both
- functions will be marked as deprecated in a future release. Use
- g_data_input_stream_read_upto() instead, but note that that function
- does not consume the stop character.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string with the data that was read
- before encountering any of the stop characters. Set @length to
- a #gsize to get the length of the string. This function will
- return %NULL on an error.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="stop_chars" transfer-ownership="none">
- <doc xml:space="preserve">characters to terminate the read.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_until_async"
- c:identifier="g_data_input_stream_read_until_async"
- version="2.20">
- <doc xml:space="preserve">The asynchronous version of g_data_input_stream_read_until().
- It is an error to have two outstanding calls to this function.
- Note that, in contrast to g_data_input_stream_read_until(),
- this function does not consume the stop character that it finds. You
- must read it for yourself.
- When the operation is finished, @callback will be called. You
- can then call g_data_input_stream_read_until_finish() to get
- the result of the operation.
- Don't use this function in new code. Its functionality is
- inconsistent with g_data_input_stream_read_until(). Both functions
- will be marked as deprecated in a future release. Use
- g_data_input_stream_read_upto_async() instead.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="stop_chars" transfer-ownership="none">
- <doc xml:space="preserve">characters to terminate the read.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_until_finish"
- c:identifier="g_data_input_stream_read_until_finish"
- version="2.20"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous call started by
- g_data_input_stream_read_until_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string with the data that was read
- before encountering any of the stop characters. Set @length to
- a #gsize to get the length of the string. This function will
- return %NULL on an error.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult that was provided to the callback.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_upto"
- c:identifier="g_data_input_stream_read_upto"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Reads a string from the data input stream, up to the first
- occurrence of any of the stop characters.
- In contrast to g_data_input_stream_read_until(), this function
- does not consume the stop character. You have to use
- g_data_input_stream_read_byte() to get it before calling
- g_data_input_stream_read_upto() again.
- Note that @stop_chars may contain '\0' if @stop_chars_len is
- specified.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string with the data that was read
- before encountering any of the stop characters. Set @length to
- a #gsize to get the length of the string. This function will
- return %NULL on an error</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataInputStream</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="stop_chars" transfer-ownership="none">
- <doc xml:space="preserve">characters to terminate the read</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="stop_chars_len" transfer-ownership="none">
- <doc xml:space="preserve">length of @stop_chars. May be -1 if @stop_chars is
- nul-terminated</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_upto_async"
- c:identifier="g_data_input_stream_read_upto_async"
- version="2.26">
- <doc xml:space="preserve">The asynchronous version of g_data_input_stream_read_upto().
- It is an error to have two outstanding calls to this function.
- In contrast to g_data_input_stream_read_until(), this function
- does not consume the stop character. You have to use
- g_data_input_stream_read_byte() to get it before calling
- g_data_input_stream_read_upto() again.
- Note that @stop_chars may contain '\0' if @stop_chars_len is
- specified.
- When the operation is finished, @callback will be called. You
- can then call g_data_input_stream_read_upto_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataInputStream</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="stop_chars" transfer-ownership="none">
- <doc xml:space="preserve">characters to terminate the read</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="stop_chars_len" transfer-ownership="none">
- <doc xml:space="preserve">length of @stop_chars. May be -1 if @stop_chars is
- nul-terminated</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_upto_finish"
- c:identifier="g_data_input_stream_read_upto_finish"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous call started by
- g_data_input_stream_read_upto_async().
- Note that this function does not consume the stop character. You
- have to use g_data_input_stream_read_byte() to get it before calling
- g_data_input_stream_read_upto_async() again.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string with the data that was read
- before encountering any of the stop characters. Set @length to
- a #gsize to get the length of the string. This function will
- return %NULL on an error.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataInputStream</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult that was provided to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #gsize to get the length of the data read in</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_byte_order"
- c:identifier="g_data_input_stream_set_byte_order">
- <doc xml:space="preserve">This function sets the byte order for the given @stream. All subsequent
- reads from the @stream will be read in the given @order.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a given #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="order" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataStreamByteOrder to set.</doc>
- <type name="DataStreamByteOrder" c:type="GDataStreamByteOrder"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_newline_type"
- c:identifier="g_data_input_stream_set_newline_type">
- <doc xml:space="preserve">Sets the newline type for the @stream.
- Note that using G_DATA_STREAM_NEWLINE_TYPE_ANY is slightly unsafe. If a read
- chunk ends in "CR" we must read an additional byte to know if this is "CR" or
- "CR LF", and this might block if there is no more data available.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataInputStream.</doc>
- <type name="DataInputStream" c:type="GDataInputStream*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the type of new line return as #GDataStreamNewlineType.</doc>
- <type name="DataStreamNewlineType"
- c:type="GDataStreamNewlineType"/>
- </parameter>
- </parameters>
- </method>
- <property name="byte-order" writable="1" transfer-ownership="none">
- <type name="DataStreamByteOrder"/>
- </property>
- <property name="newline-type" writable="1" transfer-ownership="none">
- <type name="DataStreamNewlineType"/>
- </property>
- <field name="parent_instance">
- <type name="BufferedInputStream" c:type="GBufferedInputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DataInputStreamPrivate" c:type="GDataInputStreamPrivate*"/>
- </field>
- </class>
- <record name="DataInputStreamClass"
- c:type="GDataInputStreamClass"
- glib:is-gtype-struct-for="DataInputStream">
- <field name="parent_class">
- <type name="BufferedInputStreamClass"
- c:type="GBufferedInputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="DataInputStreamPrivate"
- c:type="GDataInputStreamPrivate"
- disguised="1">
- </record>
- <class name="DataOutputStream"
- c:symbol-prefix="data_output_stream"
- c:type="GDataOutputStream"
- parent="FilterOutputStream"
- glib:type-name="GDataOutputStream"
- glib:get-type="g_data_output_stream_get_type"
- glib:type-struct="DataOutputStreamClass">
- <doc xml:space="preserve">Data output stream implements #GOutputStream and includes functions for
- writing data directly to an output stream.</doc>
- <implements name="Seekable"/>
- <constructor name="new" c:identifier="g_data_output_stream_new">
- <doc xml:space="preserve">Creates a new data output stream for @base_stream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_byte_order"
- c:identifier="g_data_output_stream_get_byte_order">
- <doc xml:space="preserve">Gets the byte order for the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GDataStreamByteOrder for the @stream.</doc>
- <type name="DataStreamByteOrder" c:type="GDataStreamByteOrder"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="put_byte"
- c:identifier="g_data_output_stream_put_byte"
- throws="1">
- <doc xml:space="preserve">Puts a byte into the output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #guchar.</doc>
- <type name="guint8" c:type="guchar"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_int16"
- c:identifier="g_data_output_stream_put_int16"
- throws="1">
- <doc xml:space="preserve">Puts a signed 16-bit integer into the output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #gint16.</doc>
- <type name="gint16" c:type="gint16"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_int32"
- c:identifier="g_data_output_stream_put_int32"
- throws="1">
- <doc xml:space="preserve">Puts a signed 32-bit integer into the output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #gint32.</doc>
- <type name="gint32" c:type="gint32"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_int64"
- c:identifier="g_data_output_stream_put_int64"
- throws="1">
- <doc xml:space="preserve">Puts a signed 64-bit integer into the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #gint64.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_string"
- c:identifier="g_data_output_stream_put_string"
- throws="1">
- <doc xml:space="preserve">Puts a string into the output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @string was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="str" transfer-ownership="none">
- <doc xml:space="preserve">a string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_uint16"
- c:identifier="g_data_output_stream_put_uint16"
- throws="1">
- <doc xml:space="preserve">Puts an unsigned 16-bit integer into the output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #guint16.</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_uint32"
- c:identifier="g_data_output_stream_put_uint32"
- throws="1">
- <doc xml:space="preserve">Puts an unsigned 32-bit integer into the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #guint32.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="put_uint64"
- c:identifier="g_data_output_stream_put_uint64"
- throws="1">
- <doc xml:space="preserve">Puts an unsigned 64-bit integer into the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @data was successfully added to the @stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">a #guint64.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_byte_order"
- c:identifier="g_data_output_stream_set_byte_order">
- <doc xml:space="preserve">Sets the byte order of the data output stream to @order.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GDataOutputStream.</doc>
- <type name="DataOutputStream" c:type="GDataOutputStream*"/>
- </instance-parameter>
- <parameter name="order" transfer-ownership="none">
- <doc xml:space="preserve">a %GDataStreamByteOrder.</doc>
- <type name="DataStreamByteOrder" c:type="GDataStreamByteOrder"/>
- </parameter>
- </parameters>
- </method>
- <property name="byte-order" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">Determines the byte ordering that is used when writing
- multi-byte entities (such as integers) to the stream.</doc>
- <type name="DataStreamByteOrder"/>
- </property>
- <field name="parent_instance">
- <type name="FilterOutputStream" c:type="GFilterOutputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="DataOutputStreamPrivate"
- c:type="GDataOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="DataOutputStreamClass"
- c:type="GDataOutputStreamClass"
- glib:is-gtype-struct-for="DataOutputStream">
- <field name="parent_class">
- <type name="FilterOutputStreamClass"
- c:type="GFilterOutputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="DataOutputStreamPrivate"
- c:type="GDataOutputStreamPrivate"
- disguised="1">
- </record>
- <enumeration name="DataStreamByteOrder"
- glib:type-name="GDataStreamByteOrder"
- glib:get-type="g_data_stream_byte_order_get_type"
- c:type="GDataStreamByteOrder">
- <doc xml:space="preserve">#GDataStreamByteOrder is used to ensure proper endianness of streaming data sources
- across various machine architectures.</doc>
- <member name="big_endian"
- value="0"
- c:identifier="G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN"
- glib:nick="big-endian">
- <doc xml:space="preserve">Selects Big Endian byte order.</doc>
- </member>
- <member name="little_endian"
- value="1"
- c:identifier="G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN"
- glib:nick="little-endian">
- <doc xml:space="preserve">Selects Little Endian byte order.</doc>
- </member>
- <member name="host_endian"
- value="2"
- c:identifier="G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN"
- glib:nick="host-endian">
- <doc xml:space="preserve">Selects endianness based on host machine's architecture.</doc>
- </member>
- </enumeration>
- <enumeration name="DataStreamNewlineType"
- glib:type-name="GDataStreamNewlineType"
- glib:get-type="g_data_stream_newline_type_get_type"
- c:type="GDataStreamNewlineType">
- <doc xml:space="preserve">#GDataStreamNewlineType is used when checking for or setting the line endings for a given file.</doc>
- <member name="lf"
- value="0"
- c:identifier="G_DATA_STREAM_NEWLINE_TYPE_LF"
- glib:nick="lf">
- <doc xml:space="preserve">Selects "LF" line endings, common on most modern UNIX platforms.</doc>
- </member>
- <member name="cr"
- value="1"
- c:identifier="G_DATA_STREAM_NEWLINE_TYPE_CR"
- glib:nick="cr">
- <doc xml:space="preserve">Selects "CR" line endings.</doc>
- </member>
- <member name="cr_lf"
- value="2"
- c:identifier="G_DATA_STREAM_NEWLINE_TYPE_CR_LF"
- glib:nick="cr-lf">
- <doc xml:space="preserve">Selects "CR, LF" line ending, common on Microsoft Windows.</doc>
- </member>
- <member name="any"
- value="3"
- c:identifier="G_DATA_STREAM_NEWLINE_TYPE_ANY"
- glib:nick="any">
- <doc xml:space="preserve">Automatically try to handle any line ending type.</doc>
- </member>
- </enumeration>
- <interface name="DatagramBased"
- c:symbol-prefix="datagram_based"
- c:type="GDatagramBased"
- version="2.48"
- glib:type-name="GDatagramBased"
- glib:get-type="g_datagram_based_get_type"
- glib:type-struct="DatagramBasedInterface">
- <doc xml:space="preserve">A #GDatagramBased is a networking interface for representing datagram-based
- communications. It is a more or less direct mapping of the core parts of the
- BSD socket API in a portable GObject interface. It is implemented by
- #GSocket, which wraps the UNIX socket API on UNIX and winsock2 on Windows.
- #GDatagramBased is entirely platform independent, and is intended to be used
- alongside higher-level networking APIs such as #GIOStream.
- It uses vectored scatter/gather I/O by default, allowing for many messages
- to be sent or received in a single call. Where possible, implementations of
- the interface should take advantage of vectored I/O to minimise processing
- or system calls. For example, #GSocket uses recvmmsg() and sendmmsg() where
- possible. Callers should take advantage of scatter/gather I/O (the use of
- multiple buffers per message) to avoid unnecessary copying of data to
- assemble or disassemble a message.
- Each #GDatagramBased operation has a timeout parameter which may be negative
- for blocking behaviour, zero for non-blocking behaviour, or positive for
- timeout behaviour. A blocking operation blocks until finished or there is an
- error. A non-blocking operation will return immediately with a
- %G_IO_ERROR_WOULD_BLOCK error if it cannot make progress. A timeout operation
- will block until the operation is complete or the timeout expires; if the
- timeout expires it will return what progress it made, or
- %G_IO_ERROR_TIMED_OUT if no progress was made. To know when a call would
- successfully run you can call g_datagram_based_condition_check() or
- g_datagram_based_condition_wait(). You can also use
- g_datagram_based_create_source() and attach it to a #GMainContext to get
- callbacks when I/O is possible.
- When running a non-blocking operation applications should always be able to
- handle getting a %G_IO_ERROR_WOULD_BLOCK error even when some other function
- said that I/O was possible. This can easily happen in case of a race
- condition in the application, but it can also happen for other reasons. For
- instance, on Windows a socket is always seen as writable until a write
- returns %G_IO_ERROR_WOULD_BLOCK.
- As with #GSocket, #GDatagramBaseds can be either connection oriented or
- connectionless. The interface does not cover connection establishment — use
- methods on the underlying type to establish a connection before sending and
- receiving data through the #GDatagramBased API. For connectionless socket
- types the target/source address is specified or received in each I/O
- operation.
- Like most other APIs in GLib, #GDatagramBased is not inherently thread safe.
- To use a #GDatagramBased concurrently from multiple threads, you must
- implement your own locking.</doc>
- <virtual-method name="condition_check"
- invoker="condition_check"
- version="2.48">
- <doc xml:space="preserve">Checks on the readiness of @datagram_based to perform operations. The
- operations specified in @condition are checked for and masked against the
- currently-satisfied conditions on @datagram_based. The result is returned.
- %G_IO_IN will be set in the return value if data is available to read with
- g_datagram_based_receive_messages(), or if the connection is closed remotely
- (EOS); and if the datagram_based has not been closed locally using some
- implementation-specific method (such as g_socket_close() or
- g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket).
- If the connection is shut down or closed (by calling g_socket_close() or
- g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
- example), all calls to this function will return %G_IO_ERROR_CLOSED.
- %G_IO_OUT will be set if it is expected that at least one byte can be sent
- using g_datagram_based_send_messages() without blocking. It will not be set
- if the datagram_based has been closed locally.
- %G_IO_HUP will be set if the connection has been closed locally.
- %G_IO_ERR will be set if there was an asynchronous error in transmitting data
- previously enqueued using g_datagram_based_send_messages().
- Note that on Windows, it is possible for an operation to return
- %G_IO_ERROR_WOULD_BLOCK even immediately after
- g_datagram_based_condition_check() has claimed that the #GDatagramBased is
- ready for writing. Rather than calling g_datagram_based_condition_check() and
- then writing to the #GDatagramBased if it succeeds, it is generally better to
- simply try writing right away, and try again later if the initial attempt
- returns %G_IO_ERROR_WOULD_BLOCK.
- It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
- conditions will always be set in the output if they are true. Apart from
- these flags, the output is guaranteed to be masked by @condition.
- This call never blocks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GIOCondition mask of the current state</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to check</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="condition_wait"
- invoker="condition_wait"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Waits for up to @timeout microseconds for condition to become true on
- @datagram_based. If the condition is met, %TRUE is returned.
- If @cancellable is cancelled before the condition is met, or if @timeout is
- reached before the condition is met, then %FALSE is returned and @error is
- set appropriately (%G_IO_ERROR_CANCELLED or %G_IO_ERROR_TIMED_OUT).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the condition was met, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to wait for</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_source"
- invoker="create_source"
- version="2.48">
- <doc xml:space="preserve">Creates a #GSource that can be attached to a #GMainContext to monitor for
- the availability of the specified @condition on the #GDatagramBased. The
- #GSource keeps a reference to the @datagram_based.
- The callback on the source is of the #GDatagramBasedSourceFunc type.
- It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
- conditions will always be reported in the callback if they are true.
- If non-%NULL, @cancellable can be used to cancel the source, which will
- cause the source to trigger, reporting the current condition (which is
- likely 0 unless cancellation happened at the same time as a condition
- change). You can check for this in the callback using
- g_cancellable_is_cancelled().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to monitor</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="receive_messages"
- invoker="receive_messages"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Receive one or more data messages from @datagram_based in one go.
- @messages must point to an array of #GInputMessage structs and
- @num_messages must be the length of this array. Each #GInputMessage
- contains a pointer to an array of #GInputVector structs describing the
- buffers that the data received in each message will be written to.
- @flags modify how all messages are received. The commonly available
- arguments for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too. These
- flags affect the overall receive operation. Flags affecting individual
- messages are returned in #GInputMessage.flags.
- The other members of #GInputMessage are treated as described in its
- documentation.
- If @timeout is negative the call will block until @num_messages have been
- received, the connection is closed remotely (EOS), @cancellable is cancelled,
- or an error occurs.
- If @timeout is 0 the call will return up to @num_messages without blocking,
- or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the operating system
- to be received.
- If @timeout is positive the call will block on the same conditions as if
- @timeout were negative. If the timeout is reached
- before any messages are received, %G_IO_ERROR_TIMED_OUT is returned,
- otherwise it will return the number of messages received before timing out.
- (Note: This is effectively the behaviour of `MSG_WAITFORONE` with
- recvmmsg().)
- To be notified when messages are available, wait for the %G_IO_IN condition.
- Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
- g_datagram_based_receive_messages() even if you were previously notified of a
- %G_IO_IN condition.
- If the remote peer closes the connection, any messages queued in the
- underlying receive buffer will be returned, and subsequent calls to
- g_datagram_based_receive_messages() will return 0 (with no error set).
- If the connection is shut down or closed (by calling g_socket_close() or
- g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
- example), all calls to this function will return %G_IO_ERROR_CLOSED.
- On error -1 is returned and @error is set accordingly. An error will only
- be returned if zero messages could be received; otherwise the number of
- messages successfully received before the error will be returned. If
- @cancellable is cancelled, %G_IO_ERROR_CANCELLED is returned as with any
- other error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages received, or -1 on error. Note that the number
- of messages received may be smaller than @num_messages if @timeout is
- zero or positive, if the peer closed the connection, or if @num_messages
- was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
- to receive the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GInputMessage structs</doc>
- <array length="1" zero-terminated="0" c:type="GInputMessage*">
- <type name="InputMessage" c:type="GInputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags for the overall operation</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="send_messages"
- invoker="send_messages"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Send one or more data messages from @datagram_based in one go.
- @messages must point to an array of #GOutputMessage structs and
- @num_messages must be the length of this array. Each #GOutputMessage
- contains an address to send the data to, and a pointer to an array of
- #GOutputVector structs to describe the buffers that the data to be sent
- for each message will be gathered from.
- @flags modify how the message is sent. The commonly available arguments
- for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too.
- The other members of #GOutputMessage are treated as described in its
- documentation.
- If @timeout is negative the call will block until @num_messages have been
- sent, @cancellable is cancelled, or an error occurs.
- If @timeout is 0 the call will send up to @num_messages without blocking,
- or will return %G_IO_ERROR_WOULD_BLOCK if there is no space to send messages.
- If @timeout is positive the call will block on the same conditions as if
- @timeout were negative. If the timeout is reached before any messages are
- sent, %G_IO_ERROR_TIMED_OUT is returned, otherwise it will return the number
- of messages sent before timing out.
- To be notified when messages can be sent, wait for the %G_IO_OUT condition.
- Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
- g_datagram_based_send_messages() even if you were previously notified of a
- %G_IO_OUT condition. (On Windows in particular, this is very common due to
- the way the underlying APIs work.)
- If the connection is shut down or closed (by calling g_socket_close() or
- g_socket_shutdown() with @shutdown_write set, if it’s a #GSocket, for
- example), all calls to this function will return %G_IO_ERROR_CLOSED.
- On error -1 is returned and @error is set accordingly. An error will only
- be returned if zero messages could be sent; otherwise the number of messages
- successfully sent before the error will be returned. If @cancellable is
- cancelled, %G_IO_ERROR_CANCELLED is returned as with any other error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages sent, or -1 on error. Note that the number of
- messages sent may be smaller than @num_messages if @timeout is zero
- or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
- which case the caller may re-try to send the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GOutputMessage structs</doc>
- <array length="1" zero-terminated="0" c:type="GOutputMessage*">
- <type name="OutputMessage" c:type="GOutputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="condition_check"
- c:identifier="g_datagram_based_condition_check"
- version="2.48">
- <doc xml:space="preserve">Checks on the readiness of @datagram_based to perform operations. The
- operations specified in @condition are checked for and masked against the
- currently-satisfied conditions on @datagram_based. The result is returned.
- %G_IO_IN will be set in the return value if data is available to read with
- g_datagram_based_receive_messages(), or if the connection is closed remotely
- (EOS); and if the datagram_based has not been closed locally using some
- implementation-specific method (such as g_socket_close() or
- g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket).
- If the connection is shut down or closed (by calling g_socket_close() or
- g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
- example), all calls to this function will return %G_IO_ERROR_CLOSED.
- %G_IO_OUT will be set if it is expected that at least one byte can be sent
- using g_datagram_based_send_messages() without blocking. It will not be set
- if the datagram_based has been closed locally.
- %G_IO_HUP will be set if the connection has been closed locally.
- %G_IO_ERR will be set if there was an asynchronous error in transmitting data
- previously enqueued using g_datagram_based_send_messages().
- Note that on Windows, it is possible for an operation to return
- %G_IO_ERROR_WOULD_BLOCK even immediately after
- g_datagram_based_condition_check() has claimed that the #GDatagramBased is
- ready for writing. Rather than calling g_datagram_based_condition_check() and
- then writing to the #GDatagramBased if it succeeds, it is generally better to
- simply try writing right away, and try again later if the initial attempt
- returns %G_IO_ERROR_WOULD_BLOCK.
- It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
- conditions will always be set in the output if they are true. Apart from
- these flags, the output is guaranteed to be masked by @condition.
- This call never blocks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GIOCondition mask of the current state</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to check</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- </parameters>
- </method>
- <method name="condition_wait"
- c:identifier="g_datagram_based_condition_wait"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Waits for up to @timeout microseconds for condition to become true on
- @datagram_based. If the condition is met, %TRUE is returned.
- If @cancellable is cancelled before the condition is met, or if @timeout is
- reached before the condition is met, then %FALSE is returned and @error is
- set appropriately (%G_IO_ERROR_CANCELLED or %G_IO_ERROR_TIMED_OUT).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the condition was met, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to wait for</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_source"
- c:identifier="g_datagram_based_create_source"
- version="2.48">
- <doc xml:space="preserve">Creates a #GSource that can be attached to a #GMainContext to monitor for
- the availability of the specified @condition on the #GDatagramBased. The
- #GSource keeps a reference to the @datagram_based.
- The callback on the source is of the #GDatagramBasedSourceFunc type.
- It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
- conditions will always be reported in the callback if they are true.
- If non-%NULL, @cancellable can be used to cancel the source, which will
- cause the source to trigger, reporting the current condition (which is
- likely 0 unless cancellation happened at the same time as a condition
- change). You can check for this in the callback using
- g_cancellable_is_cancelled().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to monitor</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_messages"
- c:identifier="g_datagram_based_receive_messages"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Receive one or more data messages from @datagram_based in one go.
- @messages must point to an array of #GInputMessage structs and
- @num_messages must be the length of this array. Each #GInputMessage
- contains a pointer to an array of #GInputVector structs describing the
- buffers that the data received in each message will be written to.
- @flags modify how all messages are received. The commonly available
- arguments for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too. These
- flags affect the overall receive operation. Flags affecting individual
- messages are returned in #GInputMessage.flags.
- The other members of #GInputMessage are treated as described in its
- documentation.
- If @timeout is negative the call will block until @num_messages have been
- received, the connection is closed remotely (EOS), @cancellable is cancelled,
- or an error occurs.
- If @timeout is 0 the call will return up to @num_messages without blocking,
- or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the operating system
- to be received.
- If @timeout is positive the call will block on the same conditions as if
- @timeout were negative. If the timeout is reached
- before any messages are received, %G_IO_ERROR_TIMED_OUT is returned,
- otherwise it will return the number of messages received before timing out.
- (Note: This is effectively the behaviour of `MSG_WAITFORONE` with
- recvmmsg().)
- To be notified when messages are available, wait for the %G_IO_IN condition.
- Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
- g_datagram_based_receive_messages() even if you were previously notified of a
- %G_IO_IN condition.
- If the remote peer closes the connection, any messages queued in the
- underlying receive buffer will be returned, and subsequent calls to
- g_datagram_based_receive_messages() will return 0 (with no error set).
- If the connection is shut down or closed (by calling g_socket_close() or
- g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
- example), all calls to this function will return %G_IO_ERROR_CLOSED.
- On error -1 is returned and @error is set accordingly. An error will only
- be returned if zero messages could be received; otherwise the number of
- messages successfully received before the error will be returned. If
- @cancellable is cancelled, %G_IO_ERROR_CANCELLED is returned as with any
- other error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages received, or -1 on error. Note that the number
- of messages received may be smaller than @num_messages if @timeout is
- zero or positive, if the peer closed the connection, or if @num_messages
- was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
- to receive the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GInputMessage structs</doc>
- <array length="1" zero-terminated="0" c:type="GInputMessage*">
- <type name="InputMessage" c:type="GInputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags for the overall operation</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_messages"
- c:identifier="g_datagram_based_send_messages"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Send one or more data messages from @datagram_based in one go.
- @messages must point to an array of #GOutputMessage structs and
- @num_messages must be the length of this array. Each #GOutputMessage
- contains an address to send the data to, and a pointer to an array of
- #GOutputVector structs to describe the buffers that the data to be sent
- for each message will be gathered from.
- @flags modify how the message is sent. The commonly available arguments
- for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too.
- The other members of #GOutputMessage are treated as described in its
- documentation.
- If @timeout is negative the call will block until @num_messages have been
- sent, @cancellable is cancelled, or an error occurs.
- If @timeout is 0 the call will send up to @num_messages without blocking,
- or will return %G_IO_ERROR_WOULD_BLOCK if there is no space to send messages.
- If @timeout is positive the call will block on the same conditions as if
- @timeout were negative. If the timeout is reached before any messages are
- sent, %G_IO_ERROR_TIMED_OUT is returned, otherwise it will return the number
- of messages sent before timing out.
- To be notified when messages can be sent, wait for the %G_IO_OUT condition.
- Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
- g_datagram_based_send_messages() even if you were previously notified of a
- %G_IO_OUT condition. (On Windows in particular, this is very common due to
- the way the underlying APIs work.)
- If the connection is shut down or closed (by calling g_socket_close() or
- g_socket_shutdown() with @shutdown_write set, if it’s a #GSocket, for
- example), all calls to this function will return %G_IO_ERROR_CLOSED.
- On error -1 is returned and @error is set accordingly. An error will only
- be returned if zero messages could be sent; otherwise the number of messages
- successfully sent before the error will be returned. If @cancellable is
- cancelled, %G_IO_ERROR_CANCELLED is returned as with any other error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages sent, or -1 on error. Note that the number of
- messages sent may be smaller than @num_messages if @timeout is zero
- or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
- which case the caller may re-try to send the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </instance-parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GOutputMessage structs</doc>
- <array length="1" zero-terminated="0" c:type="GOutputMessage*">
- <type name="OutputMessage" c:type="GOutputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="DatagramBasedInterface"
- c:type="GDatagramBasedInterface"
- glib:is-gtype-struct-for="DatagramBased"
- version="2.48">
- <doc xml:space="preserve">Provides an interface for socket-like objects which have datagram semantics,
- following the Berkeley sockets API. The interface methods are thin wrappers
- around the corresponding virtual methods, and no pre-processing of inputs is
- implemented — so implementations of this API must handle all functionality
- documented in the interface methods.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="receive_messages">
- <callback name="receive_messages" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages received, or -1 on error. Note that the number
- of messages received may be smaller than @num_messages if @timeout is
- zero or positive, if the peer closed the connection, or if @num_messages
- was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
- to receive the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GInputMessage structs</doc>
- <array length="2" zero-terminated="0" c:type="GInputMessage*">
- <type name="InputMessage" c:type="GInputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags for the overall operation</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="send_messages">
- <callback name="send_messages" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages sent, or -1 on error. Note that the number of
- messages sent may be smaller than @num_messages if @timeout is zero
- or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
- which case the caller may re-try to send the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GOutputMessage structs</doc>
- <array length="2" zero-terminated="0" c:type="GOutputMessage*">
- <type name="OutputMessage" c:type="GOutputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_source">
- <callback name="create_source">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to monitor</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="condition_check">
- <callback name="condition_check">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GIOCondition mask of the current state</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </return-value>
- <parameters>
- <parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to check</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="condition_wait">
- <callback name="condition_wait" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the condition was met, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to wait for</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, 0 to not block, or -1
- to block indefinitely</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <callback name="DatagramBasedSourceFunc"
- c:type="GDatagramBasedSourceFunc"
- version="2.48">
- <doc xml:space="preserve">This is the function type of the callback used for the #GSource
- returned by g_datagram_based_create_source().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%G_SOURCE_REMOVE if the source should be removed,
- %G_SOURCE_CONTINUE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="datagram_based" transfer-ownership="none">
- <doc xml:space="preserve">the #GDatagramBased</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">the current condition at the source fired</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">data passed in by the user</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="DesktopAppInfo"
- c:symbol-prefix="desktop_app_info"
- c:type="GDesktopAppInfo"
- parent="GObject.Object"
- glib:type-name="GDesktopAppInfo"
- glib:get-type="g_desktop_app_info_get_type"
- glib:type-struct="DesktopAppInfoClass">
- <doc xml:space="preserve">#GDesktopAppInfo is an implementation of #GAppInfo based on
- desktop files.
- Note that `<gio/gdesktopappinfo.h>` belongs to the UNIX-specific
- GIO interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
- file when using it.</doc>
- <implements name="AppInfo"/>
- <constructor name="new" c:identifier="g_desktop_app_info_new">
- <doc xml:space="preserve">Creates a new #GDesktopAppInfo based on a desktop file id.
- A desktop file id is the basename of the desktop file, including the
- .desktop extension. GIO is looking for a desktop file with this name
- in the `applications` subdirectories of the XDG
- data directories (i.e. the directories specified in the `XDG_DATA_HOME`
- and `XDG_DATA_DIRS` environment variables). GIO also supports the
- prefix-to-subdirectory mapping that is described in the
- [Menu Spec](http://standards.freedesktop.org/menu-spec/latest/)
- (i.e. a desktop id of kde-foo.desktop will match
- `/usr/share/applications/kde/foo.desktop`).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GDesktopAppInfo, or %NULL if no desktop file with that id</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="desktop_id" transfer-ownership="none">
- <doc xml:space="preserve">the desktop file id</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_filename"
- c:identifier="g_desktop_app_info_new_from_filename">
- <doc xml:space="preserve">Creates a new #GDesktopAppInfo.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GDesktopAppInfo or %NULL on error.</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">the path of a desktop file, in the GLib filename encoding</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_keyfile"
- c:identifier="g_desktop_app_info_new_from_keyfile"
- version="2.18">
- <doc xml:space="preserve">Creates a new #GDesktopAppInfo.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GDesktopAppInfo or %NULL on error.</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="key_file" transfer-ownership="none">
- <doc xml:space="preserve">an opened #GKeyFile</doc>
- <type name="GLib.KeyFile" c:type="GKeyFile*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="get_implementations"
- c:identifier="g_desktop_app_info_get_implementations"
- version="2.42">
- <doc xml:space="preserve">Gets all applications that implement @interface.
- An application implements an interface if that interface is listed in
- the Implements= line of the desktop file of the application.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of #GDesktopAppInfo
- objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="DesktopAppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="interface" transfer-ownership="none">
- <doc xml:space="preserve">the name of the interface</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="search" c:identifier="g_desktop_app_info_search">
- <doc xml:space="preserve">Searches desktop files for ones that match @search_string.
- The return value is an array of strvs. Each strv contains a list of
- applications that matched @search_string with an equal score. The
- outer list is sorted by score so that the first strv contains the
- best-matching applications, and so on.
- The algorithm for determining matches is undefined and may change at
- any time.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a
- list of strvs. Free each item with g_strfreev() and free the outer
- list with g_free().</doc>
- <array c:type="gchar***">
- <array>
- <type name="utf8"/>
- </array>
- </array>
- </return-value>
- <parameters>
- <parameter name="search_string" transfer-ownership="none">
- <doc xml:space="preserve">the search string to use</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="set_desktop_env"
- c:identifier="g_desktop_app_info_set_desktop_env"
- deprecated="1"
- deprecated-version="2.42">
- <doc xml:space="preserve">Sets the name of the desktop that the application is running in.
- This is used by g_app_info_should_show() and
- g_desktop_app_info_get_show_in() to evaluate the
- `OnlyShowIn` and `NotShowIn`
- desktop entry fields.
- Should be called only once; subsequent calls are ignored.</doc>
- <doc-deprecated xml:space="preserve">do not use this API. Since 2.42 the value of the
- `XDG_CURRENT_DESKTOP` environment variable will be used.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="desktop_env" transfer-ownership="none">
- <doc xml:space="preserve">a string specifying what desktop this is</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_action_name"
- c:identifier="g_desktop_app_info_get_action_name"
- version="2.38">
- <doc xml:space="preserve">Gets the user-visible display name of the "additional application
- action" specified by @action_name.
- This corresponds to the "Name" key within the keyfile group for the
- action.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the locale-specific action name</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action as from
- g_desktop_app_info_list_actions()</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean"
- c:identifier="g_desktop_app_info_get_boolean"
- version="2.36">
- <doc xml:space="preserve">Looks up a boolean value in the keyfile backing @info.
- The @key is looked up in the "Desktop Entry" group.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the boolean value, or %FALSE if the key
- is not found</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to look up</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_categories"
- c:identifier="g_desktop_app_info_get_categories">
- <doc xml:space="preserve">Gets the categories from the desktop file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The unparsed Categories key from the desktop file;
- i.e. no attempt is made to split it by ';' or validate it.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_filename"
- c:identifier="g_desktop_app_info_get_filename"
- version="2.24">
- <doc xml:space="preserve">When @info was created from a known filename, return it. In some
- situations such as the #GDesktopAppInfo returned from
- g_desktop_app_info_new_from_keyfile(), this function will return %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The full path to the file for @info, or %NULL if not known.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_generic_name"
- c:identifier="g_desktop_app_info_get_generic_name">
- <doc xml:space="preserve">Gets the generic name from the destkop file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value of the GenericName key</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_hidden"
- c:identifier="g_desktop_app_info_get_is_hidden">
- <doc xml:space="preserve">A desktop file is hidden if the Hidden key in it is
- set to True.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if hidden, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo.</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_keywords"
- c:identifier="g_desktop_app_info_get_keywords"
- version="2.32">
- <doc xml:space="preserve">Gets the keywords from the desktop file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value of the Keywords key</doc>
- <array c:type="const char* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_nodisplay"
- c:identifier="g_desktop_app_info_get_nodisplay"
- version="2.30">
- <doc xml:space="preserve">Gets the value of the NoDisplay key, which helps determine if the
- application info should be shown in menus. See
- #G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY and g_app_info_should_show().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value of the NoDisplay key</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_show_in"
- c:identifier="g_desktop_app_info_get_show_in"
- version="2.30">
- <doc xml:space="preserve">Checks if the application info should be shown in menus that list available
- applications for a specific name of the desktop, based on the
- `OnlyShowIn` and `NotShowIn` keys.
- @desktop_env should typically be given as %NULL, in which case the
- `XDG_CURRENT_DESKTOP` environment variable is consulted. If you want
- to override the default mechanism then you may specify @desktop_env,
- but this is not recommended.
- Note that g_app_info_should_show() for @info will include this check (with
- %NULL for @desktop_env) as well as additional checks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @info should be shown in @desktop_env according to the
- `OnlyShowIn` and `NotShowIn` keys, %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="desktop_env"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a string specifying a desktop name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_startup_wm_class"
- c:identifier="g_desktop_app_info_get_startup_wm_class"
- version="2.34">
- <doc xml:space="preserve">Retrieves the StartupWMClass field from @info. This represents the
- WM_CLASS property of the main window of the application, if launched
- through @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the startup WM class, or %NULL if none is set
- in the desktop file.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo that supports startup notify</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_string"
- c:identifier="g_desktop_app_info_get_string"
- version="2.36">
- <doc xml:space="preserve">Looks up a string value in the keyfile backing @info.
- The @key is looked up in the "Desktop Entry" group.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string, or %NULL if the key
- is not found</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to look up</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_key"
- c:identifier="g_desktop_app_info_has_key"
- version="2.36">
- <doc xml:space="preserve">Returns whether @key exists in the "Desktop Entry" group
- of the keyfile backing @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @key exists</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to look up</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="launch_action"
- c:identifier="g_desktop_app_info_launch_action"
- version="2.38">
- <doc xml:space="preserve">Activates the named application action.
- You may only call this function on action names that were
- returned from g_desktop_app_info_list_actions().
- Note that if the main entry of the desktop file indicates that the
- application supports startup notification, and @launch_context is
- non-%NULL, then startup notification will be used when activating the
- action (and as such, invocation of the action on the receiving side
- must signal the end of startup notification when it is completed).
- This is the expected behaviour of applications declaring additional
- actions, as per the desktop file specification.
- As with g_app_info_launch() there is no way to detect failures that
- occur while using this function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action as from
- g_desktop_app_info_list_actions()</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </method>
- <method name="launch_uris_as_manager"
- c:identifier="g_desktop_app_info_launch_uris_as_manager"
- throws="1">
- <doc xml:space="preserve">This function performs the equivalent of g_app_info_launch_uris(),
- but is intended primarily for operating system components that
- launch applications. Ordinary applications should use
- g_app_info_launch_uris().
- If the application is launched via traditional UNIX fork()/exec()
- then @spawn_flags, @user_setup and @user_setup_data are used for the
- call to g_spawn_async(). Additionally, @pid_callback (with
- @pid_callback_data) will be called to inform about the PID of the
- created process.
- If application launching occurs via some other mechanism (eg: D-Bus
- activation) then @spawn_flags, @user_setup, @user_setup_data,
- @pid_callback and @pid_callback_data are ignored.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful launch, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- <parameter name="uris" transfer-ownership="none">
- <doc xml:space="preserve">List of URIs</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GAppLaunchContext</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- <parameter name="spawn_flags" transfer-ownership="none">
- <doc xml:space="preserve">#GSpawnFlags, used for each process</doc>
- <type name="GLib.SpawnFlags" c:type="GSpawnFlags"/>
- </parameter>
- <parameter name="user_setup"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="4">
- <doc xml:space="preserve">a #GSpawnChildSetupFunc, used once
- for each process.</doc>
- <type name="GLib.SpawnChildSetupFunc"
- c:type="GSpawnChildSetupFunc"/>
- </parameter>
- <parameter name="user_setup_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">User data for @user_setup</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="pid_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="6">
- <doc xml:space="preserve">Callback for child processes</doc>
- <type name="DesktopAppLaunchCallback"
- c:type="GDesktopAppLaunchCallback"/>
- </parameter>
- <parameter name="pid_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">User data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_actions"
- c:identifier="g_desktop_app_info_list_actions"
- version="2.38">
- <doc xml:space="preserve">Returns the list of "additional application actions" supported on the
- desktop file, as per the desktop file specification.
- As per the specification, this is the list of actions that are
- explicitly listed in the "Actions" key of the [Desktop Entry] group.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a list of strings, always non-%NULL</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="filename"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The origin filename of this #GDesktopAppInfo</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- </class>
- <record name="DesktopAppInfoClass"
- c:type="GDesktopAppInfoClass"
- glib:is-gtype-struct-for="DesktopAppInfo">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <interface name="DesktopAppInfoLookup"
- c:symbol-prefix="desktop_app_info_lookup"
- c:type="GDesktopAppInfoLookup"
- glib:type-name="GDesktopAppInfoLookup"
- glib:get-type="g_desktop_app_info_lookup_get_type"
- glib:type-struct="DesktopAppInfoLookupIface">
- <doc xml:space="preserve">#GDesktopAppInfoLookup is an opaque data structure and can only be accessed
- using the following functions.</doc>
- <virtual-method name="get_default_for_uri_scheme"
- invoker="get_default_for_uri_scheme"
- deprecated="1">
- <doc xml:space="preserve">Gets the default application for launching applications
- using this URI scheme for a particular GDesktopAppInfoLookup
- implementation.
- The GDesktopAppInfoLookup interface and this function is used
- to implement g_app_info_get_default_for_uri_scheme() backends
- in a GIO module. There is no reason for applications to use it
- directly. Applications should use g_app_info_get_default_for_uri_scheme().</doc>
- <doc-deprecated xml:space="preserve">The #GDesktopAppInfoLookup interface is deprecated and unused by gio.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @uri_scheme or %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="lookup" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfoLookup</doc>
- <type name="DesktopAppInfoLookup" c:type="GDesktopAppInfoLookup*"/>
- </instance-parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_default_for_uri_scheme"
- c:identifier="g_desktop_app_info_lookup_get_default_for_uri_scheme"
- deprecated="1">
- <doc xml:space="preserve">Gets the default application for launching applications
- using this URI scheme for a particular GDesktopAppInfoLookup
- implementation.
- The GDesktopAppInfoLookup interface and this function is used
- to implement g_app_info_get_default_for_uri_scheme() backends
- in a GIO module. There is no reason for applications to use it
- directly. Applications should use g_app_info_get_default_for_uri_scheme().</doc>
- <doc-deprecated xml:space="preserve">The #GDesktopAppInfoLookup interface is deprecated and unused by gio.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @uri_scheme or %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="lookup" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfoLookup</doc>
- <type name="DesktopAppInfoLookup" c:type="GDesktopAppInfoLookup*"/>
- </instance-parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="DesktopAppInfoLookupIface"
- c:type="GDesktopAppInfoLookupIface"
- glib:is-gtype-struct-for="DesktopAppInfoLookup">
- <doc xml:space="preserve">Interface that is used by backends to associate default
- handlers with URI schemes.</doc>
- <field name="g_iface">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_default_for_uri_scheme">
- <callback name="get_default_for_uri_scheme">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @uri_scheme or %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="lookup" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfoLookup</doc>
- <type name="DesktopAppInfoLookup"
- c:type="GDesktopAppInfoLookup*"/>
- </parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <callback name="DesktopAppLaunchCallback"
- c:type="GDesktopAppLaunchCallback">
- <doc xml:space="preserve">During invocation, g_desktop_app_info_launch_uris_as_manager() may
- create one or more child processes. This callback is invoked once
- for each, providing the process ID.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="appinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GDesktopAppInfo</doc>
- <type name="DesktopAppInfo" c:type="GDesktopAppInfo*"/>
- </parameter>
- <parameter name="pid" transfer-ownership="none">
- <doc xml:space="preserve">Process identifier</doc>
- <type name="GLib.Pid" c:type="GPid"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">User data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <interface name="Drive"
- c:symbol-prefix="drive"
- c:type="GDrive"
- glib:type-name="GDrive"
- glib:get-type="g_drive_get_type"
- glib:type-struct="DriveIface">
- <doc xml:space="preserve">#GDrive - this represent a piece of hardware connected to the machine.
- It's generally only created for removable hardware or hardware with
- removable media.
- #GDrive is a container class for #GVolume objects that stem from
- the same piece of media. As such, #GDrive abstracts a drive with
- (or without) removable media and provides operations for querying
- whether media is available, determining whether media change is
- automatically detected and ejecting the media.
- If the #GDrive reports that media isn't automatically detected, one
- can poll for media; typically one should not do this periodically
- as a poll for media operation is potententially expensive and may
- spin up the drive creating noise.
- #GDrive supports starting and stopping drives with authentication
- support for the former. This can be used to support a diverse set
- of use cases including connecting/disconnecting iSCSI devices,
- powering down external disk enclosures and starting/stopping
- multi-disk devices such as RAID devices. Note that the actual
- semantics and side-effects of starting/stopping a #GDrive may vary
- according to implementation. To choose the correct verbs in e.g. a
- file manager, use g_drive_get_start_stop_type().
- For porting from GnomeVFS note that there is no equivalent of
- #GDrive in that API.</doc>
- <virtual-method name="can_eject" invoker="can_eject">
- <doc xml:space="preserve">Checks if a drive can be ejected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be ejected, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_poll_for_media" invoker="can_poll_for_media">
- <doc xml:space="preserve">Checks if a drive can be polled for media changes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be polled for media changes,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_start" invoker="can_start" version="2.22">
- <doc xml:space="preserve">Checks if a drive can be started.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be started, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_start_degraded"
- invoker="can_start_degraded"
- version="2.22">
- <doc xml:space="preserve">Checks if a drive can be started degraded.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be started degraded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_stop" invoker="can_stop" version="2.22">
- <doc xml:space="preserve">Checks if a drive can be stopped.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be stopped, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="disconnected">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject"
- invoker="eject"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Asynchronously ejects a drive.
- When the operation is finished, @callback will be called.
- You can then call g_drive_eject_finish() to obtain the
- result of the operation.</doc>
- <doc-deprecated xml:space="preserve">Use g_drive_eject_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_finish"
- invoker="eject_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a drive.</doc>
- <doc-deprecated xml:space="preserve">Use g_drive_eject_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been ejected successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_with_operation"
- invoker="eject_with_operation"
- version="2.22">
- <doc xml:space="preserve">Ejects a drive. This is an asynchronous operation, and is
- finished by calling g_drive_eject_with_operation_finish() with the @drive
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_with_operation_finish"
- invoker="eject_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a drive. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="enumerate_identifiers"
- invoker="enumerate_identifiers">
- <doc xml:space="preserve">Gets the kinds of identifiers that @drive has.
- Use g_drive_get_identifier() to obtain the identifiers
- themselves.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated
- array of strings containing kinds of identifiers. Use g_strfreev()
- to free.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_icon" invoker="get_icon">
- <doc xml:space="preserve">Gets the icon for @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GIcon for the @drive.
- Free the returned object with g_object_unref().</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_identifier" invoker="get_identifier">
- <doc xml:space="preserve">Gets the identifier of the given kind for @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string containing the
- requested identfier, or %NULL if the #GDrive
- doesn't have this kind of identifier.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="kind" transfer-ownership="none">
- <doc xml:space="preserve">the kind of identifier to return</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_name" invoker="get_name">
- <doc xml:space="preserve">Gets the name of @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing @drive's name. The returned
- string should be freed when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_sort_key"
- invoker="get_sort_key"
- version="2.32">
- <doc xml:space="preserve">Gets the sort key for @drive, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @drive or %NULL if no such key is available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">A #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_start_stop_type"
- invoker="get_start_stop_type"
- version="2.22">
- <doc xml:space="preserve">Gets a hint about how a drive can be started/stopped.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A value from the #GDriveStartStopType enumeration.</doc>
- <type name="DriveStartStopType" c:type="GDriveStartStopType"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_symbolic_icon"
- invoker="get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the icon for @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">symbolic #GIcon for the @drive.
- Free the returned object with g_object_unref().</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_volumes" invoker="get_volumes">
- <doc xml:space="preserve">Get a list of mountable volumes for @drive.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList containing any #GVolume objects on the given @drive.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Volume"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="has_media" invoker="has_media">
- <doc xml:space="preserve">Checks if the @drive has media. Note that the OS may not be polling
- the drive for media changes; see g_drive_is_media_check_automatic()
- for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @drive has media, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="has_volumes" invoker="has_volumes">
- <doc xml:space="preserve">Check if @drive has any mountable volumes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive contains volumes, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_media_check_automatic"
- invoker="is_media_check_automatic">
- <doc xml:space="preserve">Checks if @drive is capabable of automatically detecting media changes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive is capabable of automatically detecting
- media changes, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_media_removable" invoker="is_media_removable">
- <doc xml:space="preserve">Checks if the @drive supports removable media.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @drive supports removable media, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="poll_for_media" invoker="poll_for_media">
- <doc xml:space="preserve">Asynchronously polls @drive to see if media has been inserted or removed.
- When the operation is finished, @callback will be called.
- You can then call g_drive_poll_for_media_finish() to obtain the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="poll_for_media_finish"
- invoker="poll_for_media_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_drive_poll_for_media() on a drive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been poll_for_mediaed successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start" invoker="start" version="2.22">
- <doc xml:space="preserve">Asynchronously starts a drive.
- When the operation is finished, @callback will be called.
- You can then call g_drive_start_finish() to obtain the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the start operation.</doc>
- <type name="DriveStartFlags" c:type="GDriveStartFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start_finish"
- invoker="start_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes starting a drive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been started successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop" invoker="stop" version="2.22">
- <doc xml:space="preserve">Asynchronously stops a drive.
- When the operation is finished, @callback will be called.
- You can then call g_drive_stop_finish() to obtain the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for stopping.</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop_finish"
- invoker="stop_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes stopping a drive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been stopped successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="can_eject" c:identifier="g_drive_can_eject">
- <doc xml:space="preserve">Checks if a drive can be ejected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be ejected, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_poll_for_media"
- c:identifier="g_drive_can_poll_for_media">
- <doc xml:space="preserve">Checks if a drive can be polled for media changes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be polled for media changes,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_start" c:identifier="g_drive_can_start" version="2.22">
- <doc xml:space="preserve">Checks if a drive can be started.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be started, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_start_degraded"
- c:identifier="g_drive_can_start_degraded"
- version="2.22">
- <doc xml:space="preserve">Checks if a drive can be started degraded.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be started degraded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_stop" c:identifier="g_drive_can_stop" version="2.22">
- <doc xml:space="preserve">Checks if a drive can be stopped.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be stopped, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="eject"
- c:identifier="g_drive_eject"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Asynchronously ejects a drive.
- When the operation is finished, @callback will be called.
- You can then call g_drive_eject_finish() to obtain the
- result of the operation.</doc>
- <doc-deprecated xml:space="preserve">Use g_drive_eject_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_finish"
- c:identifier="g_drive_eject_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a drive.</doc>
- <doc-deprecated xml:space="preserve">Use g_drive_eject_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been ejected successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_with_operation"
- c:identifier="g_drive_eject_with_operation"
- version="2.22">
- <doc xml:space="preserve">Ejects a drive. This is an asynchronous operation, and is
- finished by calling g_drive_eject_with_operation_finish() with the @drive
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_with_operation_finish"
- c:identifier="g_drive_eject_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a drive. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="enumerate_identifiers"
- c:identifier="g_drive_enumerate_identifiers">
- <doc xml:space="preserve">Gets the kinds of identifiers that @drive has.
- Use g_drive_get_identifier() to obtain the identifiers
- themselves.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated
- array of strings containing kinds of identifiers. Use g_strfreev()
- to free.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_icon" c:identifier="g_drive_get_icon">
- <doc xml:space="preserve">Gets the icon for @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GIcon for the @drive.
- Free the returned object with g_object_unref().</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_identifier" c:identifier="g_drive_get_identifier">
- <doc xml:space="preserve">Gets the identifier of the given kind for @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string containing the
- requested identfier, or %NULL if the #GDrive
- doesn't have this kind of identifier.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="kind" transfer-ownership="none">
- <doc xml:space="preserve">the kind of identifier to return</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="g_drive_get_name">
- <doc xml:space="preserve">Gets the name of @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing @drive's name. The returned
- string should be freed when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sort_key"
- c:identifier="g_drive_get_sort_key"
- version="2.32">
- <doc xml:space="preserve">Gets the sort key for @drive, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @drive or %NULL if no such key is available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">A #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_start_stop_type"
- c:identifier="g_drive_get_start_stop_type"
- version="2.22">
- <doc xml:space="preserve">Gets a hint about how a drive can be started/stopped.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A value from the #GDriveStartStopType enumeration.</doc>
- <type name="DriveStartStopType" c:type="GDriveStartStopType"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_symbolic_icon"
- c:identifier="g_drive_get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the icon for @drive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">symbolic #GIcon for the @drive.
- Free the returned object with g_object_unref().</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_volumes" c:identifier="g_drive_get_volumes">
- <doc xml:space="preserve">Get a list of mountable volumes for @drive.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList containing any #GVolume objects on the given @drive.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Volume"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_media" c:identifier="g_drive_has_media">
- <doc xml:space="preserve">Checks if the @drive has media. Note that the OS may not be polling
- the drive for media changes; see g_drive_is_media_check_automatic()
- for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @drive has media, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_volumes" c:identifier="g_drive_has_volumes">
- <doc xml:space="preserve">Check if @drive has any mountable volumes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive contains volumes, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_media_check_automatic"
- c:identifier="g_drive_is_media_check_automatic">
- <doc xml:space="preserve">Checks if @drive is capabable of automatically detecting media changes.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive is capabable of automatically detecting
- media changes, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_media_removable"
- c:identifier="g_drive_is_media_removable">
- <doc xml:space="preserve">Checks if the @drive supports removable media.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @drive supports removable media, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="poll_for_media" c:identifier="g_drive_poll_for_media">
- <doc xml:space="preserve">Asynchronously polls @drive to see if media has been inserted or removed.
- When the operation is finished, @callback will be called.
- You can then call g_drive_poll_for_media_finish() to obtain the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="poll_for_media_finish"
- c:identifier="g_drive_poll_for_media_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_drive_poll_for_media() on a drive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been poll_for_mediaed successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="start" c:identifier="g_drive_start" version="2.22">
- <doc xml:space="preserve">Asynchronously starts a drive.
- When the operation is finished, @callback will be called.
- You can then call g_drive_start_finish() to obtain the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the start operation.</doc>
- <type name="DriveStartFlags" c:type="GDriveStartFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="start_finish"
- c:identifier="g_drive_start_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes starting a drive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been started successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="stop" c:identifier="g_drive_stop" version="2.22">
- <doc xml:space="preserve">Asynchronously stops a drive.
- When the operation is finished, @callback will be called.
- You can then call g_drive_stop_finish() to obtain the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for stopping.</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="stop_finish"
- c:identifier="g_drive_stop_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes stopping a drive.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been stopped successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="changed" when="last">
- <doc xml:space="preserve">Emitted when the drive's state has changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="disconnected" when="last">
- <doc xml:space="preserve">This signal is emitted when the #GDrive have been
- disconnected. If the recipient is holding references to the
- object they should release them so the object can be
- finalized.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="eject-button" when="last">
- <doc xml:space="preserve">Emitted when the physical eject button (if any) of a drive has
- been pressed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="stop-button" when="last" version="2.22">
- <doc xml:space="preserve">Emitted when the physical stop button (if any) of a drive has
- been pressed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </interface>
- <record name="DriveIface"
- c:type="GDriveIface"
- glib:is-gtype-struct-for="Drive">
- <doc xml:space="preserve">Interface for creating #GDrive implementations.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="changed">
- <callback name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="disconnected">
- <callback name="disconnected">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_button">
- <callback name="eject_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_name">
- <callback name="get_name">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing @drive's name. The returned
- string should be freed when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_icon">
- <callback name="get_icon">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GIcon for the @drive.
- Free the returned object with g_object_unref().</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="has_volumes">
- <callback name="has_volumes">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive contains volumes, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_volumes">
- <callback name="get_volumes">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList containing any #GVolume objects on the given @drive.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Volume"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_media_removable">
- <callback name="is_media_removable">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @drive supports removable media, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="has_media">
- <callback name="has_media">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @drive has media, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_media_check_automatic">
- <callback name="is_media_check_automatic">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive is capabable of automatically detecting
- media changes, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_eject">
- <callback name="can_eject">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be ejected, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_poll_for_media">
- <callback name="can_poll_for_media">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be polled for media changes,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject">
- <callback name="eject">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_finish">
- <callback name="eject_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been ejected successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="poll_for_media">
- <callback name="poll_for_media">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="poll_for_media_finish">
- <callback name="poll_for_media_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been poll_for_mediaed successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_identifier">
- <callback name="get_identifier">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string containing the
- requested identfier, or %NULL if the #GDrive
- doesn't have this kind of identifier.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="kind" transfer-ownership="none">
- <doc xml:space="preserve">the kind of identifier to return</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="enumerate_identifiers">
- <callback name="enumerate_identifiers">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated
- array of strings containing kinds of identifiers. Use g_strfreev()
- to free.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_start_stop_type">
- <callback name="get_start_stop_type">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A value from the #GDriveStartStopType enumeration.</doc>
- <type name="DriveStartStopType" c:type="GDriveStartStopType"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_start">
- <callback name="can_start">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be started, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_start_degraded">
- <callback name="can_start_degraded">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be started degraded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start">
- <callback name="start">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the start operation.</doc>
- <type name="DriveStartFlags" c:type="GDriveStartFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start_finish">
- <callback name="start_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been started successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_stop">
- <callback name="can_stop">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @drive can be stopped, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop">
- <callback name="stop">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for stopping.</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop_finish">
- <callback name="stop_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive has been stopped successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop_button">
- <callback name="stop_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_with_operation">
- <callback name="eject_with_operation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_with_operation_finish">
- <callback name="eject_with_operation_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the drive was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_sort_key">
- <callback name="get_sort_key">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @drive or %NULL if no such key is available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">A #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_symbolic_icon">
- <callback name="get_symbolic_icon">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">symbolic #GIcon for the @drive.
- Free the returned object with g_object_unref().</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <bitfield name="DriveStartFlags"
- version="2.22"
- glib:type-name="GDriveStartFlags"
- glib:get-type="g_drive_start_flags_get_type"
- c:type="GDriveStartFlags">
- <doc xml:space="preserve">Flags used when starting a drive.</doc>
- <member name="none"
- value="0"
- c:identifier="G_DRIVE_START_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- </bitfield>
- <enumeration name="DriveStartStopType"
- version="2.22"
- glib:type-name="GDriveStartStopType"
- glib:get-type="g_drive_start_stop_type_get_type"
- c:type="GDriveStartStopType">
- <doc xml:space="preserve">Enumeration describing how a drive can be started/stopped.</doc>
- <member name="unknown"
- value="0"
- c:identifier="G_DRIVE_START_STOP_TYPE_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">Unknown or drive doesn't support
- start/stop.</doc>
- </member>
- <member name="shutdown"
- value="1"
- c:identifier="G_DRIVE_START_STOP_TYPE_SHUTDOWN"
- glib:nick="shutdown">
- <doc xml:space="preserve">The stop method will physically
- shut down the drive and e.g. power down the port the drive is
- attached to.</doc>
- </member>
- <member name="network"
- value="2"
- c:identifier="G_DRIVE_START_STOP_TYPE_NETWORK"
- glib:nick="network">
- <doc xml:space="preserve">The start/stop methods are used
- for connecting/disconnect to the drive over the network.</doc>
- </member>
- <member name="multidisk"
- value="3"
- c:identifier="G_DRIVE_START_STOP_TYPE_MULTIDISK"
- glib:nick="multidisk">
- <doc xml:space="preserve">The start/stop methods will
- assemble/disassemble a virtual drive from several physical
- drives.</doc>
- </member>
- <member name="password"
- value="4"
- c:identifier="G_DRIVE_START_STOP_TYPE_PASSWORD"
- glib:nick="password">
- <doc xml:space="preserve">The start/stop methods will
- unlock/lock the disk (for example using the ATA <quote>SECURITY
- UNLOCK DEVICE</quote> command)</doc>
- </member>
- </enumeration>
- <interface name="DtlsClientConnection"
- c:symbol-prefix="dtls_client_connection"
- c:type="GDtlsClientConnection"
- version="2.48"
- glib:type-name="GDtlsClientConnection"
- glib:get-type="g_dtls_client_connection_get_type"
- glib:type-struct="DtlsClientConnectionInterface">
- <doc xml:space="preserve">#GDtlsClientConnection is the client-side subclass of
- #GDtlsConnection, representing a client-side DTLS connection.</doc>
- <prerequisite name="DatagramBased"/>
- <prerequisite name="DtlsConnection"/>
- <function name="new"
- c:identifier="g_dtls_client_connection_new"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Creates a new #GDtlsClientConnection wrapping @base_socket which is
- assumed to communicate with the server identified by @server_identity.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GDtlsClientConnection, or %NULL on error</doc>
- <type name="DtlsClientConnection" c:type="GDatagramBased*"/>
- </return-value>
- <parameters>
- <parameter name="base_socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GDatagramBased to wrap</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="server_identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected identity of the server</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_accepted_cas"
- c:identifier="g_dtls_client_connection_get_accepted_cas"
- version="2.48">
- <doc xml:space="preserve">Gets the list of distinguished names of the Certificate Authorities
- that the server will accept certificates from. This will be set
- during the TLS handshake if the server requests a certificate.
- Otherwise, it will be %NULL.
- Each item in the list is a #GByteArray which contains the complete
- subject DN of the certificate authority.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the list of
- CA DNs. You should unref each element with g_byte_array_unref() and then
- the free the list with g_list_free().</doc>
- <type name="GLib.List" c:type="GList*">
- <array name="GLib.ByteArray">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GDtlsClientConnection</doc>
- <type name="DtlsClientConnection" c:type="GDtlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_server_identity"
- c:identifier="g_dtls_client_connection_get_server_identity"
- version="2.48">
- <doc xml:space="preserve">Gets @conn's expected server identity</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable describing the
- expected server identity, or %NULL if the expected identity is not
- known.</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GDtlsClientConnection</doc>
- <type name="DtlsClientConnection" c:type="GDtlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_validation_flags"
- c:identifier="g_dtls_client_connection_get_validation_flags"
- version="2.48">
- <doc xml:space="preserve">Gets @conn's validation flags</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the validation flags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GDtlsClientConnection</doc>
- <type name="DtlsClientConnection" c:type="GDtlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_server_identity"
- c:identifier="g_dtls_client_connection_set_server_identity"
- version="2.48">
- <doc xml:space="preserve">Sets @conn's expected server identity, which is used both to tell
- servers on virtual hosts which certificate to present, and also
- to let @conn know what name to look for in the certificate when
- performing %G_TLS_CERTIFICATE_BAD_IDENTITY validation, if enabled.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GDtlsClientConnection</doc>
- <type name="DtlsClientConnection" c:type="GDtlsClientConnection*"/>
- </instance-parameter>
- <parameter name="identity" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable describing the expected server identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_validation_flags"
- c:identifier="g_dtls_client_connection_set_validation_flags"
- version="2.48">
- <doc xml:space="preserve">Sets @conn's validation flags, to override the default set of
- checks performed when validating a server certificate. By default,
- %G_TLS_CERTIFICATE_VALIDATE_ALL is used.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GDtlsClientConnection</doc>
- <type name="DtlsClientConnection" c:type="GDtlsClientConnection*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsCertificateFlags to use</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </method>
- <property name="accepted-cas" version="2.48" transfer-ownership="none">
- <doc xml:space="preserve">A list of the distinguished names of the Certificate Authorities
- that the server will accept client certificates signed by. If the
- server requests a client certificate during the handshake, then
- this property will be set after the handshake completes.
- Each item in the list is a #GByteArray which contains the complete
- subject DN of the certificate authority.</doc>
- <type name="GLib.List" c:type="gpointer">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </property>
- <property name="server-identity"
- version="2.48"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GSocketConnectable describing the identity of the server that
- is expected on the other end of the connection.
- If the %G_TLS_CERTIFICATE_BAD_IDENTITY flag is set in
- #GDtlsClientConnection:validation-flags, this object will be used
- to determine the expected identify of the remote end of the
- connection; if #GDtlsClientConnection:server-identity is not set,
- or does not match the identity presented by the server, then the
- %G_TLS_CERTIFICATE_BAD_IDENTITY validation will fail.
- In addition to its use in verifying the server certificate,
- this is also used to give a hint to the server about what
- certificate we expect, which is useful for servers that serve
- virtual hosts.</doc>
- <type name="SocketConnectable"/>
- </property>
- <property name="validation-flags"
- version="2.48"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">What steps to perform when validating a certificate received from
- a server. Server certificates that fail to validate in all of the
- ways indicated here will be rejected unless the application
- overrides the default via #GDtlsConnection::accept-certificate.</doc>
- <type name="TlsCertificateFlags"/>
- </property>
- </interface>
- <record name="DtlsClientConnectionInterface"
- c:type="GDtlsClientConnectionInterface"
- glib:is-gtype-struct-for="DtlsClientConnection"
- version="2.48">
- <doc xml:space="preserve">vtable for a #GDtlsClientConnection implementation.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- </record>
- <interface name="DtlsConnection"
- c:symbol-prefix="dtls_connection"
- c:type="GDtlsConnection"
- version="2.48"
- glib:type-name="GDtlsConnection"
- glib:get-type="g_dtls_connection_get_type"
- glib:type-struct="DtlsConnectionInterface">
- <doc xml:space="preserve">#GDtlsConnection is the base DTLS connection class type, which wraps
- a #GDatagramBased and provides DTLS encryption on top of it. Its
- subclasses, #GDtlsClientConnection and #GDtlsServerConnection,
- implement client-side and server-side DTLS, respectively.
- For TLS support, see #GTlsConnection.
- As DTLS is datagram based, #GDtlsConnection implements #GDatagramBased,
- presenting a datagram-socket-like API for the encrypted connection. This
- operates over a base datagram connection, which is also a #GDatagramBased
- (#GDtlsConnection:base-socket).
- To close a DTLS connection, use g_dtls_connection_close().
- Neither #GDtlsServerConnection or #GDtlsClientConnection set the peer address
- on their base #GDatagramBased if it is a #GSocket — it is up to the caller to
- do that if they wish. If they do not, and g_socket_close() is called on the
- base socket, the #GDtlsConnection will not raise a %G_IO_ERROR_NOT_CONNECTED
- error on further I/O.</doc>
- <prerequisite name="DatagramBased"/>
- <virtual-method name="accept_certificate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="peer_cert" transfer-ownership="none">
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handshake"
- invoker="handshake"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Attempts a TLS handshake on @conn.
- On the client side, it is never necessary to call this method;
- although the connection needs to perform a handshake after
- connecting (or after sending a "STARTTLS"-type command) and may
- need to rehandshake later if the server requests it,
- #GDtlsConnection will handle this for you automatically when you try
- to send or receive data on the connection. However, you can call
- g_dtls_connection_handshake() manually if you want to know for sure
- whether the initial handshake succeeded or failed (as opposed to
- just immediately trying to write to @conn, in which
- case if it fails, it may not be possible to tell if it failed
- before or after completing the handshake).
- Likewise, on the server side, although a handshake is necessary at
- the beginning of the communication, you do not need to call this
- function explicitly unless you want clearer error reporting.
- However, you may call g_dtls_connection_handshake() later on to
- renegotiate parameters (encryption methods, etc) with the client.
- #GDtlsConnection::accept_certificate may be emitted during the
- handshake.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handshake_async"
- invoker="handshake_async"
- version="2.48">
- <doc xml:space="preserve">Asynchronously performs a TLS handshake on @conn. See
- g_dtls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the handshake is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handshake_finish"
- invoker="handshake_finish"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS handshake operation. See
- g_dtls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="shutdown"
- invoker="shutdown"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Shut down part or all of a DTLS connection.
- If @shutdown_read is %TRUE then the receiving side of the connection is shut
- down, and further reading is disallowed. Subsequent calls to
- g_datagram_based_receive_messages() will return %G_IO_ERROR_CLOSED.
- If @shutdown_write is %TRUE then the sending side of the connection is shut
- down, and further writing is disallowed. Subsequent calls to
- g_datagram_based_send_messages() will return %G_IO_ERROR_CLOSED.
- It is allowed for both @shutdown_read and @shutdown_write to be TRUE — this
- is equivalent to calling g_dtls_connection_close().
- If @cancellable is cancelled, the #GDtlsConnection may be left
- partially-closed and any pending untransmitted data may be lost. Call
- g_dtls_connection_shutdown() again to complete closing the #GDtlsConnection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop reception of incoming datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop sending outgoing datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="shutdown_async"
- invoker="shutdown_async"
- version="2.48">
- <doc xml:space="preserve">Asynchronously shut down part or all of the DTLS connection. See
- g_dtls_connection_shutdown() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop reception of incoming datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop sending outgoing datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the shutdown operation is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="shutdown_finish"
- invoker="shutdown_finish"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS shutdown operation. See
- g_dtls_connection_shutdown() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="close"
- c:identifier="g_dtls_connection_close"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Close the DTLS connection. This is equivalent to calling
- g_dtls_connection_shutdown() to shut down both sides of the connection.
- Closing a #GDtlsConnection waits for all buffered but untransmitted data to
- be sent before it completes. It then sends a `close_notify` DTLS alert to the
- peer and may wait for a `close_notify` to be received from the peer. It does
- not close the underlying #GDtlsConnection:base-socket; that must be closed
- separately.
- Once @conn is closed, all other operations will return %G_IO_ERROR_CLOSED.
- Closing a #GDtlsConnection multiple times will not return an error.
- #GDtlsConnections will be automatically closed when the last reference is
- dropped, but you might want to call this function to make sure resources are
- released as early as possible.
- If @cancellable is cancelled, the #GDtlsConnection may be left
- partially-closed and any pending untransmitted data may be lost. Call
- g_dtls_connection_close() again to complete closing the #GDtlsConnection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_async"
- c:identifier="g_dtls_connection_close_async"
- version="2.48">
- <doc xml:space="preserve">Asynchronously close the DTLS connection. See g_dtls_connection_close() for
- more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the close operation is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_finish"
- c:identifier="g_dtls_connection_close_finish"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS close operation. See g_dtls_connection_close()
- for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="emit_accept_certificate"
- c:identifier="g_dtls_connection_emit_accept_certificate"
- version="2.48">
- <doc xml:space="preserve">Used by #GDtlsConnection implementations to emit the
- #GDtlsConnection::accept-certificate signal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if one of the signal handlers has returned
- %TRUE to accept @peer_cert</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="peer_cert" transfer-ownership="none">
- <doc xml:space="preserve">the peer's #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <doc xml:space="preserve">the problems with @peer_cert</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_certificate"
- c:identifier="g_dtls_connection_get_certificate"
- version="2.48">
- <doc xml:space="preserve">Gets @conn's certificate, as set by
- g_dtls_connection_set_certificate().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_database"
- c:identifier="g_dtls_connection_get_database"
- version="2.48">
- <doc xml:space="preserve">Gets the certificate database that @conn uses to verify
- peer certificates. See g_dtls_connection_set_database().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the certificate database that @conn uses or %NULL</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_interaction"
- c:identifier="g_dtls_connection_get_interaction"
- version="2.48">
- <doc xml:space="preserve">Get the object that will be used to interact with the user. It will be used
- for things like prompting the user for passwords. If %NULL is returned, then
- no user interaction will occur for this connection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The interaction object.</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a connection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_peer_certificate"
- c:identifier="g_dtls_connection_get_peer_certificate"
- version="2.48">
- <doc xml:space="preserve">Gets @conn's peer's certificate after the handshake has completed.
- (It is not set during the emission of
- #GDtlsConnection::accept-certificate.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's peer's certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_peer_certificate_errors"
- c:identifier="g_dtls_connection_get_peer_certificate_errors"
- version="2.48">
- <doc xml:space="preserve">Gets the errors associated with validating @conn's peer's
- certificate, after the handshake has completed. (It is not set
- during the emission of #GDtlsConnection::accept-certificate.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's peer's certificate errors</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_rehandshake_mode"
- c:identifier="g_dtls_connection_get_rehandshake_mode"
- version="2.48">
- <doc xml:space="preserve">Gets @conn rehandshaking mode. See
- g_dtls_connection_set_rehandshake_mode() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's rehandshaking mode</doc>
- <type name="TlsRehandshakeMode" c:type="GTlsRehandshakeMode"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_require_close_notify"
- c:identifier="g_dtls_connection_get_require_close_notify"
- version="2.48">
- <doc xml:space="preserve">Tests whether or not @conn expects a proper TLS close notification
- when the connection is closed. See
- g_dtls_connection_set_require_close_notify() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @conn requires a proper TLS close notification.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="handshake"
- c:identifier="g_dtls_connection_handshake"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Attempts a TLS handshake on @conn.
- On the client side, it is never necessary to call this method;
- although the connection needs to perform a handshake after
- connecting (or after sending a "STARTTLS"-type command) and may
- need to rehandshake later if the server requests it,
- #GDtlsConnection will handle this for you automatically when you try
- to send or receive data on the connection. However, you can call
- g_dtls_connection_handshake() manually if you want to know for sure
- whether the initial handshake succeeded or failed (as opposed to
- just immediately trying to write to @conn, in which
- case if it fails, it may not be possible to tell if it failed
- before or after completing the handshake).
- Likewise, on the server side, although a handshake is necessary at
- the beginning of the communication, you do not need to call this
- function explicitly unless you want clearer error reporting.
- However, you may call g_dtls_connection_handshake() later on to
- renegotiate parameters (encryption methods, etc) with the client.
- #GDtlsConnection::accept_certificate may be emitted during the
- handshake.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="handshake_async"
- c:identifier="g_dtls_connection_handshake_async"
- version="2.48">
- <doc xml:space="preserve">Asynchronously performs a TLS handshake on @conn. See
- g_dtls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the handshake is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="handshake_finish"
- c:identifier="g_dtls_connection_handshake_finish"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS handshake operation. See
- g_dtls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_certificate"
- c:identifier="g_dtls_connection_set_certificate"
- version="2.48">
- <doc xml:space="preserve">This sets the certificate that @conn will present to its peer
- during the TLS handshake. For a #GDtlsServerConnection, it is
- mandatory to set this, and that will normally be done at construct
- time.
- For a #GDtlsClientConnection, this is optional. If a handshake fails
- with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
- requires a certificate, and if you try connecting again, you should
- call this method first. You can call
- g_dtls_client_connection_get_accepted_cas() on the failed connection
- to get a list of Certificate Authorities that the server will
- accept certificates from.
- (It is also possible that a server will allow the connection with
- or without a certificate; in that case, if you don't provide a
- certificate, you can tell that the server requested one by the fact
- that g_dtls_client_connection_get_accepted_cas() will return
- non-%NULL.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">the certificate to use for @conn</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_database"
- c:identifier="g_dtls_connection_set_database"
- version="2.48">
- <doc xml:space="preserve">Sets the certificate database that is used to verify peer certificates.
- This is set to the default database by default. See
- g_dtls_backend_get_default_database(). If set to %NULL, then
- peer certificate validation will always set the
- %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
- #GDtlsConnection::accept-certificate will always be emitted on
- client-side connections, unless that bit is not set in
- #GDtlsClientConnection:validation-flags).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="database" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_interaction"
- c:identifier="g_dtls_connection_set_interaction"
- version="2.48">
- <doc xml:space="preserve">Set the object that will be used to interact with the user. It will be used
- for things like prompting the user for passwords.
- The @interaction argument will normally be a derived subclass of
- #GTlsInteraction. %NULL can also be provided if no user interaction
- should occur for this connection.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a connection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an interaction object, or %NULL</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_rehandshake_mode"
- c:identifier="g_dtls_connection_set_rehandshake_mode"
- version="2.48">
- <doc xml:space="preserve">Sets how @conn behaves with respect to rehandshaking requests.
- %G_TLS_REHANDSHAKE_NEVER means that it will never agree to
- rehandshake after the initial handshake is complete. (For a client,
- this means it will refuse rehandshake requests from the server, and
- for a server, this means it will close the connection with an error
- if the client attempts to rehandshake.)
- %G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
- rehandshake only if the other end of the connection supports the
- TLS `renegotiation_info` extension. This is the default behavior,
- but means that rehandshaking will not work against older
- implementations that do not support that extension.
- %G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
- rehandshaking even without the `renegotiation_info` extension. On
- the server side in particular, this is not recommended, since it
- leaves the server open to certain attacks. However, this mode is
- necessary if you need to allow renegotiation with older client
- software.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the rehandshaking mode</doc>
- <type name="TlsRehandshakeMode" c:type="GTlsRehandshakeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_require_close_notify"
- c:identifier="g_dtls_connection_set_require_close_notify"
- version="2.48">
- <doc xml:space="preserve">Sets whether or not @conn expects a proper TLS close notification
- before the connection is closed. If this is %TRUE (the default),
- then @conn will expect to receive a TLS close notification from its
- peer before the connection is closed, and will return a
- %G_TLS_ERROR_EOF error if the connection is closed without proper
- notification (since this may indicate a network error, or
- man-in-the-middle attack).
- In some protocols, the application will know whether or not the
- connection was closed cleanly based on application-level data
- (because the application-level data includes a length field, or is
- somehow self-delimiting); in this case, the close notify is
- redundant and may be omitted. You
- can use g_dtls_connection_set_require_close_notify() to tell @conn
- to allow an "unannounced" connection close, in which case the close
- will show up as a 0-length read, as in a non-TLS
- #GDatagramBased, and it is up to the application to check that
- the data has been fully received.
- Note that this only affects the behavior when the peer closes the
- connection; when the application calls g_dtls_connection_close_async() on
- @conn itself, this will send a close notification regardless of the
- setting of this property. If you explicitly want to do an unclean
- close, you can close @conn's #GDtlsConnection:base-socket rather
- than closing @conn itself.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="require_close_notify" transfer-ownership="none">
- <doc xml:space="preserve">whether or not to require close notification</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="shutdown"
- c:identifier="g_dtls_connection_shutdown"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Shut down part or all of a DTLS connection.
- If @shutdown_read is %TRUE then the receiving side of the connection is shut
- down, and further reading is disallowed. Subsequent calls to
- g_datagram_based_receive_messages() will return %G_IO_ERROR_CLOSED.
- If @shutdown_write is %TRUE then the sending side of the connection is shut
- down, and further writing is disallowed. Subsequent calls to
- g_datagram_based_send_messages() will return %G_IO_ERROR_CLOSED.
- It is allowed for both @shutdown_read and @shutdown_write to be TRUE — this
- is equivalent to calling g_dtls_connection_close().
- If @cancellable is cancelled, the #GDtlsConnection may be left
- partially-closed and any pending untransmitted data may be lost. Call
- g_dtls_connection_shutdown() again to complete closing the #GDtlsConnection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop reception of incoming datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop sending outgoing datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="shutdown_async"
- c:identifier="g_dtls_connection_shutdown_async"
- version="2.48">
- <doc xml:space="preserve">Asynchronously shut down part or all of the DTLS connection. See
- g_dtls_connection_shutdown() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop reception of incoming datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop sending outgoing datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the shutdown operation is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="shutdown_finish"
- c:identifier="g_dtls_connection_shutdown_finish"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS shutdown operation. See
- g_dtls_connection_shutdown() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <property name="base-socket"
- version="2.48"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GDatagramBased that the connection wraps. Note that this may be any
- implementation of #GDatagramBased, not just a #GSocket.</doc>
- <type name="DatagramBased"/>
- </property>
- <property name="certificate"
- version="2.48"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The connection's certificate; see
- g_dtls_connection_set_certificate().</doc>
- <type name="TlsCertificate"/>
- </property>
- <property name="database"
- version="2.48"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The certificate database to use when verifying this TLS connection.
- If no certificate database is set, then the default database will be
- used. See g_dtls_backend_get_default_database().</doc>
- <type name="TlsDatabase"/>
- </property>
- <property name="interaction"
- version="2.48"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GTlsInteraction object to be used when the connection or certificate
- database need to interact with the user. This will be used to prompt the
- user for passwords where necessary.</doc>
- <type name="TlsInteraction"/>
- </property>
- <property name="peer-certificate"
- version="2.48"
- transfer-ownership="none">
- <doc xml:space="preserve">The connection's peer's certificate, after the TLS handshake has
- completed and the certificate has been accepted. Note in
- particular that this is not yet set during the emission of
- #GDtlsConnection::accept-certificate.
- (You can watch for a #GObject::notify signal on this property to
- detect when a handshake has occurred.)</doc>
- <type name="TlsCertificate"/>
- </property>
- <property name="peer-certificate-errors"
- version="2.48"
- transfer-ownership="none">
- <doc xml:space="preserve">The errors noticed-and-ignored while verifying
- #GDtlsConnection:peer-certificate. Normally this should be 0, but
- it may not be if #GDtlsClientConnection:validation-flags is not
- %G_TLS_CERTIFICATE_VALIDATE_ALL, or if
- #GDtlsConnection::accept-certificate overrode the default
- behavior.</doc>
- <type name="TlsCertificateFlags"/>
- </property>
- <property name="rehandshake-mode"
- version="2.48"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The rehandshaking mode. See
- g_dtls_connection_set_rehandshake_mode().</doc>
- <type name="TlsRehandshakeMode"/>
- </property>
- <property name="require-close-notify"
- version="2.48"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether or not proper TLS close notification is required.
- See g_dtls_connection_set_require_close_notify().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <glib:signal name="accept-certificate" when="last" version="2.48">
- <doc xml:space="preserve">Emitted during the TLS handshake after the peer certificate has
- been received. You can examine @peer_cert's certification path by
- calling g_tls_certificate_get_issuer() on it.
- For a client-side connection, @peer_cert is the server's
- certificate, and the signal will only be emitted if the
- certificate was not acceptable according to @conn's
- #GDtlsClientConnection:validation_flags. If you would like the
- certificate to be accepted despite @errors, return %TRUE from the
- signal handler. Otherwise, if no handler accepts the certificate,
- the handshake will fail with %G_TLS_ERROR_BAD_CERTIFICATE.
- For a server-side connection, @peer_cert is the certificate
- presented by the client, if this was requested via the server's
- #GDtlsServerConnection:authentication_mode. On the server side,
- the signal is always emitted when the client presents a
- certificate, and the certificate will only be accepted if a
- handler returns %TRUE.
- Note that if this signal is emitted as part of asynchronous I/O
- in the main thread, then you should not attempt to interact with
- the user before returning from the signal handler. If you want to
- let the user decide whether or not to accept the certificate, you
- would have to return %FALSE from the signal handler on the first
- attempt, and then after the connection attempt returns a
- %G_TLS_ERROR_HANDSHAKE, you can interact with the user, and if
- the user decides to accept the certificate, remember that fact,
- create a new connection, and return %TRUE from the signal handler
- the next time.
- If you are doing I/O in another thread, you do not
- need to worry about this, and can simply block in the signal
- handler until the UI thread returns an answer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to accept @peer_cert (which will also
- immediately end the signal emission). %FALSE to allow the signal
- emission to continue, which will cause the handshake to fail if
- no one else overrides it.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="peer_cert" transfer-ownership="none">
- <doc xml:space="preserve">the peer's #GTlsCertificate</doc>
- <type name="TlsCertificate"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <doc xml:space="preserve">the problems with @peer_cert.</doc>
- <type name="TlsCertificateFlags"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="DtlsConnectionInterface"
- c:type="GDtlsConnectionInterface"
- glib:is-gtype-struct-for="DtlsConnection"
- version="2.48">
- <doc xml:space="preserve">Virtual method table for a #GDtlsConnection implementation.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="accept_certificate">
- <callback name="accept_certificate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="peer_cert" transfer-ownership="none">
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handshake">
- <callback name="handshake" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handshake_async">
- <callback name="handshake_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the handshake is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handshake_finish">
- <callback name="handshake_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="shutdown">
- <callback name="shutdown" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop reception of incoming datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop sending outgoing datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="shutdown_async">
- <callback name="shutdown_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop reception of incoming datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop sending outgoing datagrams</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">callback to call when the shutdown operation is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="shutdown_finish">
- <callback name="shutdown_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GDtlsConnection</doc>
- <type name="DtlsConnection" c:type="GDtlsConnection*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="DtlsServerConnection"
- c:symbol-prefix="dtls_server_connection"
- c:type="GDtlsServerConnection"
- version="2.48"
- glib:type-name="GDtlsServerConnection"
- glib:get-type="g_dtls_server_connection_get_type"
- glib:type-struct="DtlsServerConnectionInterface">
- <doc xml:space="preserve">#GDtlsServerConnection is the server-side subclass of #GDtlsConnection,
- representing a server-side DTLS connection.</doc>
- <prerequisite name="DatagramBased"/>
- <prerequisite name="DtlsConnection"/>
- <function name="new"
- c:identifier="g_dtls_server_connection_new"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Creates a new #GDtlsServerConnection wrapping @base_socket.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GDtlsServerConnection, or %NULL on error</doc>
- <type name="DtlsServerConnection" c:type="GDatagramBased*"/>
- </return-value>
- <parameters>
- <parameter name="base_socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GDatagramBased to wrap</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="certificate"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the default server certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </function>
- <property name="authentication-mode"
- version="2.48"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GTlsAuthenticationMode for the server. This can be changed
- before calling g_dtls_connection_handshake() if you want to
- rehandshake with a different mode from the initial handshake.</doc>
- <type name="TlsAuthenticationMode"/>
- </property>
- </interface>
- <record name="DtlsServerConnectionInterface"
- c:type="GDtlsServerConnectionInterface"
- glib:is-gtype-struct-for="DtlsServerConnection"
- version="2.48">
- <doc xml:space="preserve">vtable for a #GDtlsServerConnection implementation.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- </record>
- <class name="Emblem"
- c:symbol-prefix="emblem"
- c:type="GEmblem"
- parent="GObject.Object"
- glib:type-name="GEmblem"
- glib:get-type="g_emblem_get_type"
- glib:type-struct="EmblemClass">
- <doc xml:space="preserve">#GEmblem is an implementation of #GIcon that supports
- having an emblem, which is an icon with additional properties.
- It can than be added to a #GEmblemedIcon.
- Currently, only metainformation about the emblem's origin is
- supported. More may be added in the future.</doc>
- <implements name="Icon"/>
- <constructor name="new" c:identifier="g_emblem_new" version="2.18">
- <doc xml:space="preserve">Creates a new emblem for @icon.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GEmblem.</doc>
- <type name="Emblem" c:type="GEmblem*"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a GIcon containing the icon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_with_origin"
- c:identifier="g_emblem_new_with_origin"
- version="2.18">
- <doc xml:space="preserve">Creates a new emblem for @icon.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GEmblem.</doc>
- <type name="Emblem" c:type="GEmblem*"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a GIcon containing the icon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- <parameter name="origin" transfer-ownership="none">
- <doc xml:space="preserve">a GEmblemOrigin enum defining the emblem's origin</doc>
- <type name="EmblemOrigin" c:type="GEmblemOrigin"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_icon" c:identifier="g_emblem_get_icon" version="2.18">
- <doc xml:space="preserve">Gives back the icon from @emblem.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon. The returned object belongs to
- the emblem and should not be modified or freed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="emblem" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblem from which the icon should be extracted.</doc>
- <type name="Emblem" c:type="GEmblem*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_origin"
- c:identifier="g_emblem_get_origin"
- version="2.18">
- <doc xml:space="preserve">Gets the origin of the emblem.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the origin of the emblem</doc>
- <type name="EmblemOrigin" c:type="GEmblemOrigin"/>
- </return-value>
- <parameters>
- <instance-parameter name="emblem" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblem</doc>
- <type name="Emblem" c:type="GEmblem*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="icon"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="GObject.Object"/>
- </property>
- <property name="origin"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="EmblemOrigin"/>
- </property>
- </class>
- <record name="EmblemClass"
- c:type="GEmblemClass"
- disguised="1"
- glib:is-gtype-struct-for="Emblem">
- </record>
- <enumeration name="EmblemOrigin"
- version="2.18"
- glib:type-name="GEmblemOrigin"
- glib:get-type="g_emblem_origin_get_type"
- c:type="GEmblemOrigin">
- <doc xml:space="preserve">GEmblemOrigin is used to add information about the origin of the emblem
- to #GEmblem.</doc>
- <member name="unknown"
- value="0"
- c:identifier="G_EMBLEM_ORIGIN_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">Emblem of unknown origin</doc>
- </member>
- <member name="device"
- value="1"
- c:identifier="G_EMBLEM_ORIGIN_DEVICE"
- glib:nick="device">
- <doc xml:space="preserve">Emblem adds device-specific information</doc>
- </member>
- <member name="livemetadata"
- value="2"
- c:identifier="G_EMBLEM_ORIGIN_LIVEMETADATA"
- glib:nick="livemetadata">
- <doc xml:space="preserve">Emblem depicts live metadata, such as "readonly"</doc>
- </member>
- <member name="tag"
- value="3"
- c:identifier="G_EMBLEM_ORIGIN_TAG"
- glib:nick="tag">
- <doc xml:space="preserve">Emblem comes from a user-defined tag, e.g. set by nautilus (in the future)</doc>
- </member>
- </enumeration>
- <class name="EmblemedIcon"
- c:symbol-prefix="emblemed_icon"
- c:type="GEmblemedIcon"
- parent="GObject.Object"
- glib:type-name="GEmblemedIcon"
- glib:get-type="g_emblemed_icon_get_type"
- glib:type-struct="EmblemedIconClass">
- <doc xml:space="preserve">#GEmblemedIcon is an implementation of #GIcon that supports
- adding an emblem to an icon. Adding multiple emblems to an
- icon is ensured via g_emblemed_icon_add_emblem().
- Note that #GEmblemedIcon allows no control over the position
- of the emblems. See also #GEmblem for more information.</doc>
- <implements name="Icon"/>
- <constructor name="new"
- c:identifier="g_emblemed_icon_new"
- version="2.18">
- <doc xml:space="preserve">Creates a new emblemed icon for @icon with the emblem @emblem.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GIcon</doc>
- <type name="EmblemedIcon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- <parameter name="emblem"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GEmblem, or %NULL</doc>
- <type name="Emblem" c:type="GEmblem*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add_emblem"
- c:identifier="g_emblemed_icon_add_emblem"
- version="2.18">
- <doc xml:space="preserve">Adds @emblem to the #GList of #GEmblems.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="emblemed" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblemedIcon</doc>
- <type name="EmblemedIcon" c:type="GEmblemedIcon*"/>
- </instance-parameter>
- <parameter name="emblem" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblem</doc>
- <type name="Emblem" c:type="GEmblem*"/>
- </parameter>
- </parameters>
- </method>
- <method name="clear_emblems"
- c:identifier="g_emblemed_icon_clear_emblems"
- version="2.28">
- <doc xml:space="preserve">Removes all the emblems from @icon.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="emblemed" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblemedIcon</doc>
- <type name="EmblemedIcon" c:type="GEmblemedIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_emblems"
- c:identifier="g_emblemed_icon_get_emblems"
- version="2.18">
- <doc xml:space="preserve">Gets the list of emblems for the @icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GList of
- #GEmblems that is owned by @emblemed</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Emblem"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="emblemed" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblemedIcon</doc>
- <type name="EmblemedIcon" c:type="GEmblemedIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_icon"
- c:identifier="g_emblemed_icon_get_icon"
- version="2.18">
- <doc xml:space="preserve">Gets the main icon for @emblemed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon that is owned by @emblemed</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="emblemed" transfer-ownership="none">
- <doc xml:space="preserve">a #GEmblemedIcon</doc>
- <type name="EmblemedIcon" c:type="GEmblemedIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="gicon"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Icon"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="EmblemedIconPrivate" c:type="GEmblemedIconPrivate*"/>
- </field>
- </class>
- <record name="EmblemedIconClass"
- c:type="GEmblemedIconClass"
- glib:is-gtype-struct-for="EmblemedIcon">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <record name="EmblemedIconPrivate"
- c:type="GEmblemedIconPrivate"
- disguised="1">
- </record>
- <constant name="FILE_ATTRIBUTE_ACCESS_CAN_DELETE"
- value="access::can-delete"
- c:type="G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE">
- <doc xml:space="preserve">A key in the "access" namespace for checking deletion privileges.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
- This attribute will be %TRUE if the user is able to delete the file.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE"
- value="access::can-execute"
- c:type="G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE">
- <doc xml:space="preserve">A key in the "access" namespace for getting execution privileges.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
- This attribute will be %TRUE if the user is able to execute the file.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ACCESS_CAN_READ"
- value="access::can-read"
- c:type="G_FILE_ATTRIBUTE_ACCESS_CAN_READ">
- <doc xml:space="preserve">A key in the "access" namespace for getting read privileges.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
- This attribute will be %TRUE if the user is able to read the file.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ACCESS_CAN_RENAME"
- value="access::can-rename"
- c:type="G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME">
- <doc xml:space="preserve">A key in the "access" namespace for checking renaming privileges.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
- This attribute will be %TRUE if the user is able to rename the file.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ACCESS_CAN_TRASH"
- value="access::can-trash"
- c:type="G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH">
- <doc xml:space="preserve">A key in the "access" namespace for checking trashing privileges.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
- This attribute will be %TRUE if the user is able to move the file to
- the trash.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ACCESS_CAN_WRITE"
- value="access::can-write"
- c:type="G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE">
- <doc xml:space="preserve">A key in the "access" namespace for getting write privileges.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
- This attribute will be %TRUE if the user is able to write to the file.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_DOS_IS_ARCHIVE"
- value="dos::is-archive"
- c:type="G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE">
- <doc xml:space="preserve">A key in the "dos" namespace for checking if the file's archive flag
- is set. This attribute is %TRUE if the archive flag is set. This attribute
- is only available for DOS file systems. Corresponding #GFileAttributeType
- is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_DOS_IS_SYSTEM"
- value="dos::is-system"
- c:type="G_FILE_ATTRIBUTE_DOS_IS_SYSTEM">
- <doc xml:space="preserve">A key in the "dos" namespace for checking if the file's backup flag
- is set. This attribute is %TRUE if the backup flag is set. This attribute
- is only available for DOS file systems. Corresponding #GFileAttributeType
- is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ETAG_VALUE"
- value="etag::value"
- c:type="G_FILE_ATTRIBUTE_ETAG_VALUE">
- <doc xml:space="preserve">A key in the "etag" namespace for getting the value of the file's
- entity tag. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_FILESYSTEM_FREE"
- value="filesystem::free"
- c:type="G_FILE_ATTRIBUTE_FILESYSTEM_FREE">
- <doc xml:space="preserve">A key in the "filesystem" namespace for getting the number of bytes of free space left on the
- file system. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_FILESYSTEM_READONLY"
- value="filesystem::readonly"
- c:type="G_FILE_ATTRIBUTE_FILESYSTEM_READONLY">
- <doc xml:space="preserve">A key in the "filesystem" namespace for checking if the file system
- is read only. Is set to %TRUE if the file system is read only.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_FILESYSTEM_SIZE"
- value="filesystem::size"
- c:type="G_FILE_ATTRIBUTE_FILESYSTEM_SIZE">
- <doc xml:space="preserve">A key in the "filesystem" namespace for getting the total size (in bytes) of the file system,
- used in g_file_query_filesystem_info(). Corresponding #GFileAttributeType
- is %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_FILESYSTEM_TYPE"
- value="filesystem::type"
- c:type="G_FILE_ATTRIBUTE_FILESYSTEM_TYPE">
- <doc xml:space="preserve">A key in the "filesystem" namespace for getting the file system's type.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_FILESYSTEM_USED"
- value="filesystem::used"
- c:type="G_FILE_ATTRIBUTE_FILESYSTEM_USED"
- version="2.32">
- <doc xml:space="preserve">A key in the "filesystem" namespace for getting the number of bytes of used on the
- file system. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW"
- value="filesystem::use-preview"
- c:type="G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW">
- <doc xml:space="preserve">A key in the "filesystem" namespace for hinting a file manager
- application whether it should preview (e.g. thumbnail) files on the
- file system. The value for this key contain a
- #GFilesystemPreviewType.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_GVFS_BACKEND"
- value="gvfs::backend"
- c:type="G_FILE_ATTRIBUTE_GVFS_BACKEND">
- <doc xml:space="preserve">A key in the "gvfs" namespace that gets the name of the current
- GVFS backend in use. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ID_FILE"
- value="id::file"
- c:type="G_FILE_ATTRIBUTE_ID_FILE">
- <doc xml:space="preserve">A key in the "id" namespace for getting a file identifier.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
- An example use would be during listing files, to avoid recursive
- directory scanning.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_ID_FILESYSTEM"
- value="id::filesystem"
- c:type="G_FILE_ATTRIBUTE_ID_FILESYSTEM">
- <doc xml:space="preserve">A key in the "id" namespace for getting the file system identifier.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
- An example use would be during drag and drop to see if the source
- and target are on the same filesystem (default to move) or not (default
- to copy).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT"
- value="mountable::can-eject"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be ejected.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT"
- value="mountable::can-mount"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) is mountable.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL"
- value="mountable::can-poll"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be polled.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_START"
- value="mountable::can-start"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be started.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED"
- value="mountable::can-start-degraded"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be started
- degraded.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP"
- value="mountable::can-stop"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be stopped.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT"
- value="mountable::can-unmount"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) is unmountable.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI"
- value="mountable::hal-udi"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI">
- <doc xml:space="preserve">A key in the "mountable" namespace for getting the HAL UDI for the mountable
- file. Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC"
- value="mountable::is-media-check-automatic"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE)
- is automatically polled for media.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE"
- value="mountable::start-stop-type"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for getting the #GDriveStartStopType.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE"
- value="mountable::unix-device"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE">
- <doc xml:space="preserve">A key in the "mountable" namespace for getting the unix device.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE"
- value="mountable::unix-device-file"
- c:type="G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE"
- version="2.22">
- <doc xml:space="preserve">A key in the "mountable" namespace for getting the unix device file.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_OWNER_GROUP"
- value="owner::group"
- c:type="G_FILE_ATTRIBUTE_OWNER_GROUP">
- <doc xml:space="preserve">A key in the "owner" namespace for getting the file owner's group.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_OWNER_USER"
- value="owner::user"
- c:type="G_FILE_ATTRIBUTE_OWNER_USER">
- <doc xml:space="preserve">A key in the "owner" namespace for getting the user name of the
- file's owner. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_OWNER_USER_REAL"
- value="owner::user-real"
- c:type="G_FILE_ATTRIBUTE_OWNER_USER_REAL">
- <doc xml:space="preserve">A key in the "owner" namespace for getting the real name of the
- user that owns the file. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_PREVIEW_ICON"
- value="preview::icon"
- c:type="G_FILE_ATTRIBUTE_PREVIEW_ICON"
- version="2.20">
- <doc xml:space="preserve">A key in the "preview" namespace for getting a #GIcon that can be
- used to get preview of the file. For example, it may be a low
- resolution thumbnail without metadata. Corresponding
- #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT. The value
- for this key should contain a #GIcon.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_SELINUX_CONTEXT"
- value="selinux::context"
- c:type="G_FILE_ATTRIBUTE_SELINUX_CONTEXT">
- <doc xml:space="preserve">A key in the "selinux" namespace for getting the file's SELinux
- context. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_STRING. Note that this attribute is only
- available if GLib has been built with SELinux support.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE"
- value="standard::allocated-size"
- c:type="G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE"
- version="2.20">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the amount of disk space
- that is consumed by the file (in bytes). This will generally be larger
- than the file size (due to block size overhead) but can occasionally be
- smaller (for example, for sparse files).
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE"
- value="standard::content-type"
- c:type="G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the content type of the file.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
- The value for this key should contain a valid content type.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_COPY_NAME"
- value="standard::copy-name"
- c:type="G_FILE_ATTRIBUTE_STANDARD_COPY_NAME">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the copy name of the file.
- The copy name is an optional version of the name. If available it's always
- in UTF8, and corresponds directly to the original filename (only transcoded to
- UTF8). This is useful if you want to copy the file to another filesystem that
- might have a different encoding. If the filename is not a valid string in the
- encoding selected for the filesystem it is in then the copy name will not be set.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_DESCRIPTION"
- value="standard::description"
- c:type="G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the description of the file.
- The description is a utf8 string that describes the file, generally containing
- the filename, but can also contain furter information. Example descriptions
- could be "filename (on hostname)" for a remote file or "filename (in trash)"
- for a file in the trash. This is useful for instance as the window title
- when displaying a directory or for a bookmarks menu.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME"
- value="standard::display-name"
- c:type="G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the display name of the file.
- A display name is guaranteed to be in UTF8 and can thus be displayed in
- the UI.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_EDIT_NAME"
- value="standard::edit-name"
- c:type="G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME">
- <doc xml:space="preserve">A key in the "standard" namespace for edit name of the file.
- An edit name is similar to the display name, but it is meant to be
- used when you want to rename the file in the UI. The display name
- might contain information you don't want in the new filename (such as
- "(invalid unicode)" if the filename was in an invalid encoding).
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE"
- value="standard::fast-content-type"
- c:type="G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the fast content type.
- The fast content type isn't as reliable as the regular one, as it
- only uses the filename to guess it, but it is faster to calculate than the
- regular content type.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_ICON"
- value="standard::icon"
- c:type="G_FILE_ATTRIBUTE_STANDARD_ICON">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the icon for the file.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
- The value for this key should contain a #GIcon.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_IS_BACKUP"
- value="standard::is-backup"
- c:type="G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP">
- <doc xml:space="preserve">A key in the "standard" namespace for checking if a file is a backup file.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_IS_HIDDEN"
- value="standard::is-hidden"
- c:type="G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN">
- <doc xml:space="preserve">A key in the "standard" namespace for checking if a file is hidden.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_IS_SYMLINK"
- value="standard::is-symlink"
- c:type="G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK">
- <doc xml:space="preserve">A key in the "standard" namespace for checking if the file is a symlink.
- Typically the actual type is something else, if we followed the symlink
- to get the type.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL"
- value="standard::is-virtual"
- c:type="G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL">
- <doc xml:space="preserve">A key in the "standard" namespace for checking if a file is virtual.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_IS_VOLATILE"
- value="standard::is-volatile"
- c:type="G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE"
- version="2.46">
- <doc xml:space="preserve">A key in the "standard" namespace for checking if a file is
- volatile. This is meant for opaque, non-POSIX-like backends to
- indicate that the URI is not persistent. Applications should look
- at #G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_NAME"
- value="standard::name"
- c:type="G_FILE_ATTRIBUTE_STANDARD_NAME">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the name of the file.
- The name is the on-disk filename which may not be in any known encoding,
- and can thus not be generally displayed as is.
- Use #G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the
- name in a user interface.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_SIZE"
- value="standard::size"
- c:type="G_FILE_ATTRIBUTE_STANDARD_SIZE">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the file's size (in bytes).
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_SORT_ORDER"
- value="standard::sort-order"
- c:type="G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER">
- <doc xml:space="preserve">A key in the "standard" namespace for setting the sort order of a file.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32.
- An example use would be in file managers, which would use this key
- to set the order files are displayed. Files with smaller sort order
- should be sorted first, and files without sort order as if sort order
- was zero.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON"
- value="standard::symbolic-icon"
- c:type="G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON"
- version="2.34">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the symbolic icon for the file.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
- The value for this key should contain a #GIcon.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET"
- value="standard::symlink-target"
- c:type="G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the symlink target, if the file
- is a symlink. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_TARGET_URI"
- value="standard::target-uri"
- c:type="G_FILE_ATTRIBUTE_STANDARD_TARGET_URI">
- <doc xml:space="preserve">A key in the "standard" namespace for getting the target URI for the file, in
- the case of %G_FILE_TYPE_SHORTCUT or %G_FILE_TYPE_MOUNTABLE files.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_STANDARD_TYPE"
- value="standard::type"
- c:type="G_FILE_ATTRIBUTE_STANDARD_TYPE">
- <doc xml:space="preserve">A key in the "standard" namespace for storing file types.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
- The value for this key should contain a #GFileType.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_THUMBNAILING_FAILED"
- value="thumbnail::failed"
- c:type="G_FILE_ATTRIBUTE_THUMBNAILING_FAILED">
- <doc xml:space="preserve">A key in the "thumbnail" namespace for checking if thumbnailing failed.
- This attribute is %TRUE if thumbnailing failed. Corresponding
- #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_THUMBNAIL_IS_VALID"
- value="thumbnail::is-valid"
- c:type="G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID"
- version="2.40">
- <doc xml:space="preserve">A key in the "thumbnail" namespace for checking whether the thumbnail is outdated.
- This attribute is %TRUE if the thumbnail is up-to-date with the file it represents,
- and %FALSE if the file has been modified since the thumbnail was generated.
- If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE,
- it indicates that thumbnailing may be attempted again and may succeed.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_THUMBNAIL_PATH"
- value="thumbnail::path"
- c:type="G_FILE_ATTRIBUTE_THUMBNAIL_PATH">
- <doc xml:space="preserve">A key in the "thumbnail" namespace for getting the path to the thumbnail
- image. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_ACCESS"
- value="time::access"
- c:type="G_FILE_ATTRIBUTE_TIME_ACCESS">
- <doc xml:space="preserve">A key in the "time" namespace for getting the time the file was last
- accessed. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT64, and contains the UNIX time since the
- file was last accessed.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_ACCESS_USEC"
- value="time::access-usec"
- c:type="G_FILE_ATTRIBUTE_TIME_ACCESS_USEC">
- <doc xml:space="preserve">A key in the "time" namespace for getting the microseconds of the time
- the file was last accessed. This should be used in conjunction with
- #G_FILE_ATTRIBUTE_TIME_ACCESS. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_CHANGED"
- value="time::changed"
- c:type="G_FILE_ATTRIBUTE_TIME_CHANGED">
- <doc xml:space="preserve">A key in the "time" namespace for getting the time the file was last
- changed. Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
- and contains the UNIX time since the file was last changed.
- This corresponds to the traditional UNIX ctime.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_CHANGED_USEC"
- value="time::changed-usec"
- c:type="G_FILE_ATTRIBUTE_TIME_CHANGED_USEC">
- <doc xml:space="preserve">A key in the "time" namespace for getting the microseconds of the time
- the file was last changed. This should be used in conjunction with
- #G_FILE_ATTRIBUTE_TIME_CHANGED. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_CREATED"
- value="time::created"
- c:type="G_FILE_ATTRIBUTE_TIME_CREATED">
- <doc xml:space="preserve">A key in the "time" namespace for getting the time the file was created.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
- and contains the UNIX time since the file was created.
- This corresponds to the NTFS ctime.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_CREATED_USEC"
- value="time::created-usec"
- c:type="G_FILE_ATTRIBUTE_TIME_CREATED_USEC">
- <doc xml:space="preserve">A key in the "time" namespace for getting the microseconds of the time
- the file was created. This should be used in conjunction with
- #G_FILE_ATTRIBUTE_TIME_CREATED. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_MODIFIED"
- value="time::modified"
- c:type="G_FILE_ATTRIBUTE_TIME_MODIFIED">
- <doc xml:space="preserve">A key in the "time" namespace for getting the time the file was last
- modified. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT64, and contains the UNIX time since the
- file was modified.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TIME_MODIFIED_USEC"
- value="time::modified-usec"
- c:type="G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC">
- <doc xml:space="preserve">A key in the "time" namespace for getting the miliseconds of the time
- the file was last modified. This should be used in conjunction with
- #G_FILE_ATTRIBUTE_TIME_MODIFIED. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TRASH_DELETION_DATE"
- value="trash::deletion-date"
- c:type="G_FILE_ATTRIBUTE_TRASH_DELETION_DATE"
- version="2.24">
- <doc xml:space="preserve">A key in the "trash" namespace. When requested against
- items in "trash:///", will return the date and time when the file
- was trashed. The format of the returned string is YYYY-MM-DDThh:mm:ss.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TRASH_ITEM_COUNT"
- value="trash::item-count"
- c:type="G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT">
- <doc xml:space="preserve">A key in the "trash" namespace. When requested against
- "trash:///" returns the number of (toplevel) items in the trash folder.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_TRASH_ORIG_PATH"
- value="trash::orig-path"
- c:type="G_FILE_ATTRIBUTE_TRASH_ORIG_PATH"
- version="2.24">
- <doc xml:space="preserve">A key in the "trash" namespace. When requested against
- items in "trash:///", will return the original path to the file before it
- was trashed. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_BLOCKS"
- value="unix::blocks"
- c:type="G_FILE_ATTRIBUTE_UNIX_BLOCKS">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the number of blocks allocated
- for the file. This attribute is only available for UNIX file systems.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_BLOCK_SIZE"
- value="unix::block-size"
- c:type="G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the block size for the file
- system. This attribute is only available for UNIX file systems.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_DEVICE"
- value="unix::device"
- c:type="G_FILE_ATTRIBUTE_UNIX_DEVICE">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the device id of the device the
- file is located on (see stat() documentation). This attribute is only
- available for UNIX file systems. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_GID"
- value="unix::gid"
- c:type="G_FILE_ATTRIBUTE_UNIX_GID">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the group ID for the file.
- This attribute is only available for UNIX file systems.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_INODE"
- value="unix::inode"
- c:type="G_FILE_ATTRIBUTE_UNIX_INODE">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the inode of the file.
- This attribute is only available for UNIX file systems. Corresponding
- #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT"
- value="unix::is-mountpoint"
- c:type="G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT">
- <doc xml:space="preserve">A key in the "unix" namespace for checking if the file represents a
- UNIX mount point. This attribute is %TRUE if the file is a UNIX mount
- point. This attribute is only available for UNIX file systems.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_MODE"
- value="unix::mode"
- c:type="G_FILE_ATTRIBUTE_UNIX_MODE">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the mode of the file
- (e.g. whether the file is a regular file, symlink, etc). See lstat()
- documentation. This attribute is only available for UNIX file systems.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_NLINK"
- value="unix::nlink"
- c:type="G_FILE_ATTRIBUTE_UNIX_NLINK">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the number of hard links
- for a file. See lstat() documentation. This attribute is only available
- for UNIX file systems. Corresponding #GFileAttributeType is
- %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_RDEV"
- value="unix::rdev"
- c:type="G_FILE_ATTRIBUTE_UNIX_RDEV">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the device ID for the file
- (if it is a special file). See lstat() documentation. This attribute
- is only available for UNIX file systems. Corresponding #GFileAttributeType
- is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="FILE_ATTRIBUTE_UNIX_UID"
- value="unix::uid"
- c:type="G_FILE_ATTRIBUTE_UNIX_UID">
- <doc xml:space="preserve">A key in the "unix" namespace for getting the user ID for the file.
- This attribute is only available for UNIX file systems.
- Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <interface name="File"
- c:symbol-prefix="file"
- c:type="GFile"
- glib:type-name="GFile"
- glib:get-type="g_file_get_type"
- glib:type-struct="FileIface">
- <doc xml:space="preserve">#GFile is a high level abstraction for manipulating files on a
- virtual file system. #GFiles are lightweight, immutable objects
- that do no I/O upon creation. It is necessary to understand that
- #GFile objects do not represent files, merely an identifier for a
- file. All file content I/O is implemented as streaming operations
- (see #GInputStream and #GOutputStream).
- To construct a #GFile, you can use:
- - g_file_new_for_path() if you have a path.
- - g_file_new_for_uri() if you have a URI.
- - g_file_new_for_commandline_arg() for a command line argument.
- - g_file_new_tmp() to create a temporary file from a template.
- - g_file_parse_name() from a UTF-8 string gotten from g_file_get_parse_name().
- One way to think of a #GFile is as an abstraction of a pathname. For
- normal files the system pathname is what is stored internally, but as
- #GFiles are extensible it could also be something else that corresponds
- to a pathname in a userspace implementation of a filesystem.
- #GFiles make up hierarchies of directories and files that correspond to
- the files on a filesystem. You can move through the file system with
- #GFile using g_file_get_parent() to get an identifier for the parent
- directory, g_file_get_child() to get a child within a directory,
- g_file_resolve_relative_path() to resolve a relative path between two
- #GFiles. There can be multiple hierarchies, so you may not end up at
- the same root if you repeatedly call g_file_get_parent() on two different
- files.
- All #GFiles have a basename (get with g_file_get_basename()). These names
- are byte strings that are used to identify the file on the filesystem
- (relative to its parent directory) and there is no guarantees that they
- have any particular charset encoding or even make any sense at all. If
- you want to use filenames in a user interface you should use the display
- name that you can get by requesting the
- %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME attribute with g_file_query_info().
- This is guaranteed to be in UTF-8 and can be used in a user interface.
- But always store the real basename or the #GFile to use to actually
- access the file, because there is no way to go from a display name to
- the actual name.
- Using #GFile as an identifier has the same weaknesses as using a path
- in that there may be multiple aliases for the same file. For instance,
- hard or soft links may cause two different #GFiles to refer to the same
- file. Other possible causes for aliases are: case insensitive filesystems,
- short and long names on FAT/NTFS, or bind mounts in Linux. If you want to
- check if two #GFiles point to the same file you can query for the
- %G_FILE_ATTRIBUTE_ID_FILE attribute. Note that #GFile does some trivial
- canonicalization of pathnames passed in, so that trivial differences in
- the path string used at creation (duplicated slashes, slash at end of
- path, "." or ".." path segments, etc) does not create different #GFiles.
- Many #GFile operations have both synchronous and asynchronous versions
- to suit your application. Asynchronous versions of synchronous functions
- simply have _async() appended to their function names. The asynchronous
- I/O functions call a #GAsyncReadyCallback which is then used to finalize
- the operation, producing a GAsyncResult which is then passed to the
- function's matching _finish() operation.
- It is highly recommended to use asynchronous calls when running within a
- shared main loop, such as in the main thread of an application. This avoids
- I/O operations blocking other sources on the main loop from being dispatched.
- Synchronous I/O operations should be performed from worker threads. See the
- [introduction to asynchronous programming section][async-programming] for
- more.
- Some #GFile operations almost always take a noticeable amount of time, and
- so do not have synchronous analogs. Notable cases include:
- - g_file_mount_mountable() to mount a mountable file.
- - g_file_unmount_mountable_with_operation() to unmount a mountable file.
- - g_file_eject_mountable_with_operation() to eject a mountable file.
- ## Entity Tags # {#gfile-etag}
- One notable feature of #GFiles are entity tags, or "etags" for
- short. Entity tags are somewhat like a more abstract version of the
- traditional mtime, and can be used to quickly determine if the file
- has been modified from the version on the file system. See the
- HTTP 1.1
- [specification](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)
- for HTTP Etag headers, which are a very similar concept.</doc>
- <function name="new_for_commandline_arg"
- c:identifier="g_file_new_for_commandline_arg">
- <doc xml:space="preserve">Creates a #GFile with the given argument from the command line.
- The value of @arg can be either a URI, an absolute path or a
- relative path resolved relative to the current working directory.
- This operation never fails, but the returned object might not
- support any I/O operation if @arg points to a malformed path.
- Note that on Windows, this function expects its argument to be in
- UTF-8 -- not the system code page. This means that you
- should not use this function with string from argv as it is passed
- to main(). g_win32_get_command_line() will return a UTF-8 version of
- the commandline. #GApplication also uses UTF-8 but
- g_application_command_line_create_file_for_arg() may be more useful
- for you there. It is also always possible to use this function with
- #GOptionContext arguments of type %G_OPTION_ARG_FILENAME.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="arg" transfer-ownership="none">
- <doc xml:space="preserve">a command line string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_commandline_arg_and_cwd"
- c:identifier="g_file_new_for_commandline_arg_and_cwd"
- version="2.36">
- <doc xml:space="preserve">Creates a #GFile with the given argument from the command line.
- This function is similar to g_file_new_for_commandline_arg() except
- that it allows for passing the current working directory as an
- argument instead of using the current working directory of the
- process.
- This is useful if the commandline argument was given in a context
- other than the invocation of the current process.
- See also g_application_command_line_create_file_for_arg().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="arg" transfer-ownership="none">
- <doc xml:space="preserve">a command line string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cwd" transfer-ownership="none">
- <doc xml:space="preserve">the current working directory of the commandline</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_path" c:identifier="g_file_new_for_path">
- <doc xml:space="preserve">Constructs a #GFile for a given path. This operation never
- fails, but the returned object might not support any I/O
- operation if @path is malformed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile for the given @path.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a relative or absolute path.
- The string must be encoded in the glib filename encoding.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_uri" c:identifier="g_file_new_for_uri">
- <doc xml:space="preserve">Constructs a #GFile for a given URI. This operation never
- fails, but the returned object might not support any I/O
- operation if @uri is malformed or if the uri type is
- not supported.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile for the given @uri.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a UTF-8 string containing a URI</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_tmp"
- c:identifier="g_file_new_tmp"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Opens a file in the preferred directory for temporary files (as
- returned by g_get_tmp_dir()) and returns a #GFile and
- #GFileIOStream pointing to it.
- @tmpl should be a string in the GLib file name encoding
- containing a sequence of six 'X' characters, and containing no
- directory components. If it is %NULL, a default template is used.
- Unlike the other #GFile constructors, this will return %NULL if
- a temporary file could not be created.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="tmpl"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Template for the file
- name, as in g_file_open_tmp(), or %NULL for a default template</doc>
- <type name="filename" c:type="char*"/>
- </parameter>
- <parameter name="iostream"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">on return, a #GFileIOStream for the created file</doc>
- <type name="FileIOStream" c:type="GFileIOStream**"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_name" c:identifier="g_file_parse_name">
- <doc xml:space="preserve">Constructs a #GFile with the given @parse_name (i.e. something
- given by g_file_get_parse_name()). This operation never fails,
- but the returned object might not support any I/O operation if
- the @parse_name cannot be parsed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="parse_name" transfer-ownership="none">
- <doc xml:space="preserve">a file name or path to be parsed</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="append_to" invoker="append_to" throws="1">
- <doc xml:space="preserve">Gets an output stream for appending data to the file.
- If the file doesn't already exist it is created.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level that
- is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- Some file systems don't allow all file names, and may return an
- %G_IO_ERROR_INVALID_FILENAME error. If the file is a directory the
- %G_IO_ERROR_IS_DIRECTORY error will be returned. Other errors are
- possible too, and depend on what kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="append_to_async" invoker="append_to_async">
- <doc xml:space="preserve">Asynchronously opens @file for appending.
- For more details, see g_file_append_to() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_append_to_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="append_to_finish"
- invoker="append_to_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file append operation started with
- g_file_append_to_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a valid #GFileOutputStream
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">#GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="copy" invoker="copy" throws="1">
- <doc xml:space="preserve">Copies the file @source to the location specified by @destination.
- Can not handle recursive copies of directories.
- If the flag #G_FILE_COPY_OVERWRITE is specified an already
- existing @destination file is overwritten.
- If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
- will be copied as symlinks, otherwise the target of the
- @source symlink will be copied.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @progress_callback is not %NULL, then the operation can be monitored
- by setting this to a #GFileProgressCallback function.
- @progress_callback_data will be passed to this function. It is guaranteed
- that this callback will be called after all data has been transferred with
- the total number of bytes copied during the operation.
- If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND error
- is returned, independent on the status of the @destination.
- If #G_FILE_COPY_OVERWRITE is not specified and the target exists, then
- the error %G_IO_ERROR_EXISTS is returned.
- If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
- error is returned. If trying to overwrite a directory with a directory the
- %G_IO_ERROR_WOULD_MERGE error is returned.
- If the source is a directory and the target does not exist, or
- #G_FILE_COPY_OVERWRITE is specified and the target is a file, then the
- %G_IO_ERROR_WOULD_RECURSE error is returned.
- If you are interested in copying the #GFile object itself (not the on-disk
- file), see g_file_dup().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">destination #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="4">
- <doc xml:space="preserve">function to callback with
- progress information, or %NULL if progress information is not needed</doc>
- <type name="FileProgressCallback" c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="copy_async"
- invoker="copy_async"
- introspectable="0">
- <doc xml:space="preserve">Copies the file @source to the location specified by @destination
- asynchronously. For details of the behaviour, see g_file_copy().
- If @progress_callback is not %NULL, then that function that will be called
- just like in g_file_copy(). The callback will run in the default main context
- of the thread calling g_file_copy_async() — the same context as @callback is
- run in.
- When the operation is finished, @callback will be called. You can then call
- g_file_copy_finish() to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">destination #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">function to callback with progress
- information, or %NULL if progress information is not needed</doc>
- <type name="FileProgressCallback" c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="copy_finish" invoker="copy_finish" throws="1">
- <doc xml:space="preserve">Finishes copying the file started with g_file_copy_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create" invoker="create" throws="1">
- <doc xml:space="preserve">Creates a new file and returns an output stream for writing to it.
- The file must not already exist.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level
- that is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If a file or directory with this name already exists the
- %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
- allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
- error, and if the name is to long %G_IO_ERROR_FILENAME_TOO_LONG will
- be returned. Other errors are possible too, and depend on what kind
- of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream for the newly created
- file, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_async" invoker="create_async">
- <doc xml:space="preserve">Asynchronously creates a new file and returns an output stream
- for writing to it. The file must not already exist.
- For more details, see g_file_create() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_create_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_finish" invoker="create_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file create operation started with
- g_file_create_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_readwrite"
- invoker="create_readwrite"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Creates a new file and returns a stream for reading and
- writing to it. The file must not already exist.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level
- that is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If a file or directory with this name already exists, the
- %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
- allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
- error, and if the name is too long, %G_IO_ERROR_FILENAME_TOO_LONG
- will be returned. Other errors are possible too, and depend on what
- kind of filesystem the file is on.
- Note that in many non-local file cases read and write streams are
- not supported, so make sure you really need to do read and write
- streaming, rather than just opening for reading or writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream for the newly created
- file, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_readwrite_async"
- invoker="create_readwrite_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously creates a new file and returns a stream
- for reading and writing to it. The file must not already exist.
- For more details, see g_file_create_readwrite() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_create_readwrite_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_readwrite_finish"
- invoker="create_readwrite_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file create operation started with
- g_file_create_readwrite_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="delete_file" invoker="delete" throws="1">
- <doc xml:space="preserve">Deletes a file. If the @file is a directory, it will only be
- deleted if it is empty. This has the same semantics as g_unlink().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was deleted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="delete_file_async"
- invoker="delete_async"
- version="2.34">
- <doc xml:space="preserve">Asynchronously delete a file. If the @file is a directory, it will
- only be deleted if it is empty. This has the same semantics as
- g_unlink().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="delete_file_finish"
- invoker="delete_finish"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Finishes deleting a file started with g_file_delete_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was deleted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="dup" invoker="dup">
- <doc xml:space="preserve">Duplicates a #GFile handle. This operation does not duplicate
- the actual file or directory represented by the #GFile; see
- g_file_copy() if attempting to copy a file.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile that is a duplicate
- of the given #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_mountable"
- invoker="eject_mountable"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Starts an asynchronous eject on a mountable.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_eject_mountable_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_file_eject_mountable_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_mountable_finish"
- invoker="eject_mountable_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous eject operation started by
- g_file_eject_mountable().</doc>
- <doc-deprecated xml:space="preserve">Use g_file_eject_mountable_with_operation_finish()
- instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file was ejected successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_mountable_with_operation"
- invoker="eject_mountable_with_operation"
- version="2.22">
- <doc xml:space="preserve">Starts an asynchronous eject on a mountable.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_eject_mountable_with_operation_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_mountable_with_operation_finish"
- invoker="eject_mountable_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous eject operation started by
- g_file_eject_mountable_with_operation().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file was ejected successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="enumerate_children"
- invoker="enumerate_children"
- throws="1">
- <doc xml:space="preserve">Gets the requested information about the files in a directory.
- The result is a #GFileEnumerator object that will give out
- #GFileInfo objects for all the files in the directory.
- The @attributes value is a string that specifies the file
- attributes that should be gathered. It is not an error if
- it's not possible to read a particular requested attribute
- from a file - it just won't be set. @attributes should
- be a comma-separated list of attributes or attribute wildcards.
- The wildcard "*" means all attributes, and a wildcard like
- "standard::*" means all attributes in the standard namespace.
- An example attribute query be "standard::*,owner::user".
- The standard attributes are available as defines, like
- #G_FILE_ATTRIBUTE_STANDARD_NAME.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- be returned. If the file is not a directory, the %G_IO_ERROR_NOT_DIRECTORY
- error will be returned. Other errors are possible too.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileEnumerator if successful,
- %NULL on error. Free the returned object with g_object_unref().</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="enumerate_children_async"
- invoker="enumerate_children_async">
- <doc xml:space="preserve">Asynchronously gets the requested information about the files
- in a directory. The result is a #GFileEnumerator object that will
- give out #GFileInfo objects for all the files in the directory.
- For more details, see g_file_enumerate_children() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called. You can
- then call g_file_enumerate_children_finish() to get the result of
- the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="enumerate_children_finish"
- invoker="enumerate_children_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an async enumerate children operation.
- See g_file_enumerate_children_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileEnumerator or %NULL
- if an error occurred.
- Free the returned object with g_object_unref().</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="equal" invoker="equal">
- <doc xml:space="preserve">Checks if the two given #GFiles refer to the same file.
- Note that two #GFiles that differ can still refer to the same
- file on the filesystem due to various forms of filename
- aliasing.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file1 and @file2 are equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="file2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="find_enclosing_mount"
- invoker="find_enclosing_mount"
- throws="1">
- <doc xml:space="preserve">Gets a #GMount for the #GFile.
- If the #GFileIface for @file does not have a mount (e.g.
- possibly a remote share), @error will be set to %G_IO_ERROR_NOT_FOUND
- and %NULL will be returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount where the @file is located
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="find_enclosing_mount_async"
- invoker="find_enclosing_mount_async">
- <doc xml:space="preserve">Asynchronously gets the mount for the file.
- For more details, see g_file_find_enclosing_mount() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_find_enclosing_mount_finish() to
- get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="find_enclosing_mount_finish"
- invoker="find_enclosing_mount_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous find mount request.
- See g_file_find_enclosing_mount_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GMount for given @file or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_basename" invoker="get_basename">
- <doc xml:space="preserve">Gets the base name (the last component of the path) for a given #GFile.
- If called for the top level of a system (such as the filesystem root
- or a uri like sftp://host/) it will return a single directory separator
- (and on Windows, possibly a drive letter).
- The base name is a byte string (not UTF-8). It has no defined encoding
- or rules other than it may not contain zero bytes. If you want to use
- filenames in a user interface you should use the display name that you
- can get by requesting the %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME
- attribute with g_file_query_info().
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string containing the #GFile's base name, or
- %NULL if given #GFile is invalid. The returned string should be
- freed with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_child_for_display_name"
- invoker="get_child_for_display_name"
- throws="1">
- <doc xml:space="preserve">Gets the child of @file for a given @display_name (i.e. a UTF-8
- version of the name). If this function fails, it returns %NULL
- and @error will be set. This is very useful when constructing a
- #GFile for a new file and the user entered the filename in the
- user interface, for instance when you select a directory and
- type a filename in the file selector.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile to the specified child, or
- %NULL if the display name couldn't be converted.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">string to a possible child</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_parent" invoker="get_parent">
- <doc xml:space="preserve">Gets the parent directory for the @file.
- If the @file represents the root directory of the
- file system, then %NULL will be returned.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GFile structure to the
- parent of the given #GFile or %NULL if there is no parent. Free
- the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_parse_name" invoker="get_parse_name">
- <doc xml:space="preserve">Gets the parse name of the @file.
- A parse name is a UTF-8 string that describes the
- file such that one can get the #GFile back using
- g_file_parse_name().
- This is generally used to show the #GFile as a nice
- full-pathname kind of string in a user interface,
- like in a location entry.
- For local files with names that can safely be converted
- to UTF-8 the pathname is used, otherwise the IRI is used
- (a form of URI that allows UTF-8 characters unescaped).
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the #GFile's parse name.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_path" invoker="get_path">
- <doc xml:space="preserve">Gets the local pathname for #GFile, if one exists. If non-%NULL, this is
- guaranteed to be an absolute, canonical path. It might contain symlinks.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string containing the #GFile's path, or %NULL
- if no such path exists. The returned string should be freed
- with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_relative_path" invoker="get_relative_path">
- <doc xml:space="preserve">Gets the path for @descendant relative to @parent.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string with the relative path from @descendant
- to @parent, or %NULL if @descendant doesn't have @parent as
- prefix. The returned string should be freed with g_free() when
- no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="descendant" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_uri" invoker="get_uri">
- <doc xml:space="preserve">Gets the URI for the @file.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the #GFile's URI.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_uri_scheme" invoker="get_uri_scheme">
- <doc xml:space="preserve">Gets the URI scheme for a #GFile.
- RFC 3986 decodes the scheme as:
- |[
- URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
- ]|
- Common schemes include "file", "http", "ftp", etc.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the URI scheme for the given
- #GFile. The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="has_uri_scheme" invoker="has_uri_scheme">
- <doc xml:space="preserve">Checks to see if a #GFile has a given URI scheme.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if #GFile's backend supports the
- given URI scheme, %FALSE if URI scheme is %NULL,
- not supported, or #GFile is invalid.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="hash" invoker="hash">
- <doc xml:space="preserve">Creates a hash value for a #GFile.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if @file is not a valid #GFile, otherwise an
- integer that can be used as hash value for the #GFile.
- This function is intended for easily hashing a #GFile to
- add to a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_native" invoker="is_native">
- <doc xml:space="preserve">Checks to see if a file is native to the platform.
- A native file s one expressed in the platform-native filename format,
- e.g. "C:\Windows" or "/usr/bin/". This does not mean the file is local,
- as it might be on a locally mounted remote filesystem.
- On some systems non-native files may be available using the native
- filesystem via a userspace filesystem (FUSE), in these cases this call
- will return %FALSE, but g_file_get_path() will still return a native path.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file is native</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="make_directory"
- invoker="make_directory"
- throws="1">
- <doc xml:space="preserve">Creates a directory. Note that this will only create a child directory
- of the immediate parent directory of the path or URI given by the #GFile.
- To recursively create directories, see g_file_make_directory_with_parents().
- This function will fail if the parent directory does not exist, setting
- @error to %G_IO_ERROR_NOT_FOUND. If the file system doesn't support
- creating directories, this function will fail, setting @error to
- %G_IO_ERROR_NOT_SUPPORTED.
- For a local #GFile the newly created directory will have the default
- (current) ownership and permissions of the current process.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful creation, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="make_directory_async"
- invoker="make_directory_async"
- version="2.38">
- <doc xml:space="preserve">Asynchronously creates a directory.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="make_directory_finish"
- invoker="make_directory_finish"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous directory creation, started with
- g_file_make_directory_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful directory creation, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="make_symbolic_link"
- invoker="make_symbolic_link"
- throws="1">
- <doc xml:space="preserve">Creates a symbolic link named @file which contains the string
- @symlink_value.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on the creation of a new symlink, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile with the name of the symlink to create</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="symlink_value" transfer-ownership="none">
- <doc xml:space="preserve">a string with the path for the target of the new symlink</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="measure_disk_usage"
- invoker="measure_disk_usage"
- version="2.38"
- introspectable="0"
- throws="1">
- <doc xml:space="preserve">Recursively measures the disk usage of @file.
- This is essentially an analog of the 'du' command, but it also
- reports the number of directories and non-directory files encountered
- (including things like symbolic links).
- By default, errors are only reported against the toplevel file
- itself. Errors found while recursing are silently ignored, unless
- %G_FILE_DISK_USAGE_REPORT_ALL_ERRORS is given in @flags.
- The returned size, @disk_usage, is in bytes and should be formatted
- with g_format_size() in order to get something reasonable for showing
- in a user interface.
- @progress_callback and @progress_data can be given to request
- periodic progress updates while scanning. See the documentation for
- #GFileMeasureProgressCallback for information about when and how the
- callback will be invoked.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, with the out parameters set.
- %FALSE otherwise, with @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileMeasureFlags</doc>
- <type name="FileMeasureFlags" c:type="GFileMeasureFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">a #GFileMeasureProgressCallback</doc>
- <type name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"/>
- </parameter>
- <parameter name="progress_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="disk_usage"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of bytes of disk space used</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_dirs"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_files"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of non-directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="measure_disk_usage_async"
- invoker="measure_disk_usage_async"
- version="2.38"
- introspectable="0">
- <doc xml:space="preserve">Recursively measures the disk usage of @file.
- This is the asynchronous version of g_file_measure_disk_usage(). See
- there for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileMeasureFlags</doc>
- <type name="FileMeasureFlags" c:type="GFileMeasureFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">a #GFileMeasureProgressCallback</doc>
- <type name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"/>
- </parameter>
- <parameter name="progress_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="measure_disk_usage_finish"
- invoker="measure_disk_usage_finish"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Collects the results from an earlier call to
- g_file_measure_disk_usage_async(). See g_file_measure_disk_usage() for
- more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, with the out parameters set.
- %FALSE otherwise, with @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="disk_usage"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of bytes of disk space used</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_dirs"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_files"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of non-directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="monitor_dir"
- invoker="monitor_directory"
- throws="1">
- <doc xml:space="preserve">Obtains a directory monitor for the given file.
- This may fail if directory monitoring is not supported.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- It does not make sense for @flags to contain
- %G_FILE_MONITOR_WATCH_HARD_LINKS, since hard links can not be made to
- directories. It is not possible to monitor all the files in a
- directory for changes made via hard links; if you want to do this then
- you must register individual watches with g_file_monitor().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="monitor_file" invoker="monitor_file" throws="1">
- <doc xml:space="preserve">Obtains a file monitor for the given file. If no file notification
- mechanism exists, then regular polling of the file is used.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @flags contains %G_FILE_MONITOR_WATCH_HARD_LINKS then the monitor
- will also attempt to report changes made to the file via another
- filename (ie, a hard link). Without this flag, you can only rely on
- changes made through the filename contained in @file to be
- reported. Using this flag may result in an increase in resource
- usage, and may not have any effect depending on the #GFileMonitor
- backend and/or filesystem type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_enclosing_volume"
- invoker="mount_enclosing_volume">
- <doc xml:space="preserve">Starts a @mount_operation, mounting the volume that contains
- the file @location.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_mount_enclosing_volume_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_enclosing_volume_finish"
- invoker="mount_enclosing_volume_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a mount operation started by g_file_mount_enclosing_volume().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred,
- this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_mountable" invoker="mount_mountable">
- <doc xml:space="preserve">Mounts a file of type G_FILE_TYPE_MOUNTABLE.
- Using @mount_operation, you can request callbacks when, for instance,
- passwords are needed during authentication.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_mount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_mountable_finish"
- invoker="mount_mountable_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a mount operation. See g_file_mount_mountable() for details.
- Finish an asynchronous mount operation that was started
- with g_file_mount_mountable().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="move" invoker="move" throws="1">
- <doc xml:space="preserve">Tries to move the file or directory @source to the location specified
- by @destination. If native move operations are supported then this is
- used, otherwise a copy + delete fallback is used. The native
- implementation may support moving directories (for instance on moves
- inside the same filesystem), but the fallback code does not.
- If the flag #G_FILE_COPY_OVERWRITE is specified an already
- existing @destination file is overwritten.
- If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
- will be copied as symlinks, otherwise the target of the
- @source symlink will be copied.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @progress_callback is not %NULL, then the operation can be monitored
- by setting this to a #GFileProgressCallback function.
- @progress_callback_data will be passed to this function. It is
- guaranteed that this callback will be called after all data has been
- transferred with the total number of bytes copied during the operation.
- If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND
- error is returned, independent on the status of the @destination.
- If #G_FILE_COPY_OVERWRITE is not specified and the target exists,
- then the error %G_IO_ERROR_EXISTS is returned.
- If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
- error is returned. If trying to overwrite a directory with a directory the
- %G_IO_ERROR_WOULD_MERGE error is returned.
- If the source is a directory and the target does not exist, or
- #G_FILE_COPY_OVERWRITE is specified and the target is a file, then
- the %G_IO_ERROR_WOULD_RECURSE error may be returned (if the native
- move operation isn't available).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful move, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">#GFile pointing to the source location</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">#GFile pointing to the destination location</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="4">
- <doc xml:space="preserve">#GFileProgressCallback
- function for updates</doc>
- <type name="FileProgressCallback" c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">gpointer to user data for
- the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="open_readwrite"
- invoker="open_readwrite"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Opens an existing file for reading and writing. The result is
- a #GFileIOStream that can be used to read and write the contents
- of the file.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- be returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
- error will be returned. Other errors are possible too, and depend on
- what kind of filesystem the file is on. Note that in many non-local
- file cases read and write streams are not supported, so make sure you
- really need to do read and write streaming, rather than just opening
- for reading or writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to open</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="open_readwrite_async"
- invoker="open_readwrite_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously opens @file for reading and writing.
- For more details, see g_file_open_readwrite() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_open_readwrite_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="open_readwrite_finish"
- invoker="open_readwrite_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file read operation started with
- g_file_open_readwrite_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="poll_mountable"
- invoker="poll_mountable"
- version="2.22">
- <doc xml:space="preserve">Polls a file of type #G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_mount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="poll_mountable_finish"
- invoker="poll_mountable_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes a poll operation. See g_file_poll_mountable() for details.
- Finish an asynchronous poll operation that was polled
- with g_file_poll_mountable().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully. %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="prefix_matches" invoker="has_prefix">
- <doc xml:space="preserve">Checks whether @file has the prefix specified by @prefix.
- In other words, if the names of initial elements of @file's
- pathname match @prefix. Only full pathname elements are matched,
- so a path like /foo is not considered a prefix of /foobar, only
- of /foo/bar.
- A #GFile is not a prefix of itself. If you want to check for
- equality, use g_file_equal().
- This call does no I/O, as it works purely on names. As such it can
- sometimes return %FALSE even if @file is inside a @prefix (from a
- filesystem point of view), because the prefix of @file is an alias
- of @prefix.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @files's parent, grandparent, etc is @prefix,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="prefix" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_filesystem_info"
- invoker="query_filesystem_info"
- throws="1">
- <doc xml:space="preserve">Similar to g_file_query_info(), but obtains information
- about the filesystem the @file is on, rather than the file itself.
- For instance the amount of space available and the type of
- the filesystem.
- The @attributes value is a string that specifies the attributes
- that should be gathered. It is not an error if it's not possible
- to read a particular requested attribute from a file - it just
- won't be set. @attributes should be a comma-separated list of
- attributes or attribute wildcards. The wildcard "*" means all
- attributes, and a wildcard like "filesystem::*" means all attributes
- in the filesystem namespace. The standard namespace for filesystem
- attributes is "filesystem". Common attributes of interest are
- #G_FILE_ATTRIBUTE_FILESYSTEM_SIZE (the total size of the filesystem
- in bytes), #G_FILE_ATTRIBUTE_FILESYSTEM_FREE (number of bytes available),
- and #G_FILE_ATTRIBUTE_FILESYSTEM_TYPE (type of the filesystem).
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- be returned. Other errors are possible too, and depend on what
- kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo or %NULL if there was an error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_filesystem_info_async"
- invoker="query_filesystem_info_async">
- <doc xml:space="preserve">Asynchronously gets the requested information about the filesystem
- that the specified @file is on. The result is a #GFileInfo object
- that contains key-value attributes (such as type or size for the
- file).
- For more details, see g_file_query_filesystem_info() which is the
- synchronous version of this call.
- When the operation is finished, @callback will be called. You can
- then call g_file_query_info_finish() to get the result of the
- operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_filesystem_info_finish"
- invoker="query_filesystem_info_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous filesystem info query.
- See g_file_query_filesystem_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo for given @file
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info" invoker="query_info" throws="1">
- <doc xml:space="preserve">Gets the requested information about specified @file.
- The result is a #GFileInfo object that contains key-value
- attributes (such as the type or size of the file).
- The @attributes value is a string that specifies the file
- attributes that should be gathered. It is not an error if
- it's not possible to read a particular requested attribute
- from a file - it just won't be set. @attributes should be a
- comma-separated list of attributes or attribute wildcards.
- The wildcard "*" means all attributes, and a wildcard like
- "standard::*" means all attributes in the standard namespace.
- An example attribute query be "standard::*,owner::user".
- The standard attributes are available as defines, like
- #G_FILE_ATTRIBUTE_STANDARD_NAME.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- For symlinks, normally the information about the target of the
- symlink is returned, rather than information about the symlink
- itself. However if you pass #G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
- in @flags the information about the symlink itself will be returned.
- Also, for symlinks that point to non-existing files the information
- about the symlink itself will be returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
- returned. Other errors are possible too, and depend on what kind of
- filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the given @file, or %NULL
- on error. Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_async" invoker="query_info_async">
- <doc xml:space="preserve">Asynchronously gets the requested information about specified @file.
- The result is a #GFileInfo object that contains key-value attributes
- (such as type or size for the file).
- For more details, see g_file_query_info() which is the synchronous
- version of this call.
- When the operation is finished, @callback will be called. You can
- then call g_file_query_info_finish() to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_finish"
- invoker="query_info_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file info query.
- See g_file_query_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo for given @file
- or %NULL on error. Free the returned object with
- g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_settable_attributes"
- invoker="query_settable_attributes"
- throws="1">
- <doc xml:space="preserve">Obtain the list of settable attributes for the file.
- Returns the type and full attribute name of all the attributes
- that can be set on this file. This doesn't mean setting it will
- always succeed though, you might get an access failure, or some
- specific file may not support a specific attribute.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList describing the settable attributes.
- When you are done with it, release it with
- g_file_attribute_info_list_unref()</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_writable_namespaces"
- invoker="query_writable_namespaces"
- throws="1">
- <doc xml:space="preserve">Obtain the list of attribute namespaces where new attributes
- can be created by a user. An example of this is extended
- attributes (in the "xattr" namespace).
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList describing the writable namespaces.
- When you are done with it, release it with
- g_file_attribute_info_list_unref()</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_async" invoker="read_async">
- <doc xml:space="preserve">Asynchronously opens @file for reading.
- For more details, see g_file_read() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_read_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_finish" invoker="read_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file read operation started with
- g_file_read_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_fn" invoker="read" throws="1">
- <doc xml:space="preserve">Opens a file for reading. The result is a #GFileInputStream that
- can be used to read the contents of the file.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
- returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
- error will be returned. Other errors are possible too, and depend
- on what kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to read</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="replace" invoker="replace" throws="1">
- <doc xml:space="preserve">Returns an output stream for overwriting the file, possibly
- creating a backup copy of the file first. If the file doesn't exist,
- it will be created.
- This will try to replace the file in the safest way possible so
- that any errors during the writing will not affect an already
- existing copy of the file. For instance, for local files it
- may write to a temporary file and then atomically rename over
- the destination when the stream is closed.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level that
- is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If you pass in a non-%NULL @etag value and @file already exists, then
- this value is compared to the current entity tag of the file, and if
- they differ an %G_IO_ERROR_WRONG_ETAG error is returned. This
- generally means that the file has been changed since you last read
- it. You can get the new etag from g_file_output_stream_get_etag()
- after you've finished writing and closed the #GFileOutputStream. When
- you load a new file you can use g_file_input_stream_query_info() to
- get the etag of the file.
- If @make_backup is %TRUE, this function will attempt to make a
- backup of the current file before overwriting it. If this fails
- a %G_IO_ERROR_CANT_CREATE_BACKUP error will be returned. If you
- want to replace anyway, try again with @make_backup set to %FALSE.
- If the file is a directory the %G_IO_ERROR_IS_DIRECTORY error will
- be returned, and if the file is some other form of non-regular file
- then a %G_IO_ERROR_NOT_REGULAR_FILE error will be returned. Some
- file systems don't allow all file names, and may return an
- %G_IO_ERROR_INVALID_FILENAME error, and if the name is to long
- %G_IO_ERROR_FILENAME_TOO_LONG will be returned. Other errors are
- possible too, and depend on what kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional [entity tag][gfile-etag]
- for the current #GFile, or #NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="replace_async" invoker="replace_async">
- <doc xml:space="preserve">Asynchronously overwrites the file, replacing the contents,
- possibly creating a backup copy of the file first.
- For more details, see g_file_replace() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_replace_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an [entity tag][gfile-etag] for the current #GFile,
- or %NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="replace_finish"
- invoker="replace_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file replace operation started with
- g_file_replace_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="replace_readwrite"
- invoker="replace_readwrite"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Returns an output stream for overwriting the file in readwrite mode,
- possibly creating a backup copy of the file first. If the file doesn't
- exist, it will be created.
- For details about the behaviour, see g_file_replace() which does the
- same thing but returns an output stream only.
- Note that in many non-local file cases read and write streams are not
- supported, so make sure you really need to do read and write streaming,
- rather than just opening for reading or writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional [entity tag][gfile-etag]
- for the current #GFile, or #NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="replace_readwrite_async"
- invoker="replace_readwrite_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously overwrites the file in read-write mode,
- replacing the contents, possibly creating a backup copy
- of the file first.
- For more details, see g_file_replace_readwrite() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_replace_readwrite_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an [entity tag][gfile-etag] for the current #GFile,
- or %NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="replace_readwrite_finish"
- invoker="replace_readwrite_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file replace operation started with
- g_file_replace_readwrite_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="resolve_relative_path"
- invoker="resolve_relative_path">
- <doc xml:space="preserve">Resolves a relative path for @file to an absolute path.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFile to the resolved path.
- %NULL if @relative_path is %NULL or if @file is invalid.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="relative_path" transfer-ownership="none">
- <doc xml:space="preserve">a given relative path string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_attribute" invoker="set_attribute" throws="1">
- <doc xml:space="preserve">Sets an attribute in the file with attribute name @attribute to @value.
- Some attributes can be unset by setting @attribute to
- %G_FILE_ATTRIBUTE_TYPE_INVALID and @value_p to %NULL.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attribute was set, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The type of the attribute</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </parameter>
- <parameter name="value_p"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the value (or the pointer
- itself if the type is a pointer type)</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_attributes_async"
- invoker="set_attributes_async">
- <doc xml:space="preserve">Asynchronously sets the attributes of @file with @info.
- For more details, see g_file_set_attributes_from_info(),
- which is the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_set_attributes_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">a #gpointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_attributes_finish"
- invoker="set_attributes_finish"
- throws="1">
- <doc xml:space="preserve">Finishes setting an attribute started in g_file_set_attributes_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attributes were set correctly, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo**"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_attributes_from_info"
- invoker="set_attributes_from_info"
- throws="1">
- <doc xml:space="preserve">Tries to set all attributes in the #GFileInfo on the target
- values, not stopping on the first error.
- If there is any error during this operation then @error will
- be set to the first error. Error on particular fields are flagged
- by setting the "status" field in the attribute value to
- %G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING, which means you can
- also detect further errors.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if there was any error, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_display_name"
- invoker="set_display_name"
- throws="1">
- <doc xml:space="preserve">Renames @file to the specified display name.
- The display name is converted from UTF-8 to the correct encoding
- for the target filesystem if possible and the @file is renamed to this.
- If you want to implement a rename operation in the user interface the
- edit name (#G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME) should be used as the
- initial value in the rename widget, and then the result after editing
- should be passed to g_file_set_display_name().
- On success the resulting converted filename is returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile specifying what @file was renamed to,
- or %NULL if there was an error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_display_name_async"
- invoker="set_display_name_async">
- <doc xml:space="preserve">Asynchronously sets the display name for a given #GFile.
- For more details, see g_file_set_display_name() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_set_display_name_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_display_name_finish"
- invoker="set_display_name_finish"
- throws="1">
- <doc xml:space="preserve">Finishes setting a display name started with
- g_file_set_display_name_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start_mountable"
- invoker="start_mountable"
- version="2.22">
- <doc xml:space="preserve">Starts a file of type #G_FILE_TYPE_MOUNTABLE.
- Using @start_operation, you can request callbacks when, for instance,
- passwords are needed during authentication.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_mount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="DriveStartFlags" c:type="GDriveStartFlags"/>
- </parameter>
- <parameter name="start_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation, or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start_mountable_finish"
- invoker="start_mountable_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes a start operation. See g_file_start_mountable() for details.
- Finish an asynchronous start operation that was started
- with g_file_start_mountable().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully. %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop_mountable"
- invoker="stop_mountable"
- version="2.22">
- <doc xml:space="preserve">Stops a file of type #G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_stop_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop_mountable_finish"
- invoker="stop_mountable_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an stop operation, see g_file_stop_mountable() for details.
- Finish an asynchronous stop operation that was started
- with g_file_stop_mountable().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="trash" invoker="trash" throws="1">
- <doc xml:space="preserve">Sends @file to the "Trashcan", if possible. This is similar to
- deleting it, but the user can recover it before emptying the trashcan.
- Not all file systems support trashing, so this call can return the
- %G_IO_ERROR_NOT_SUPPORTED error.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful trash, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to send to trash</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="trash_async" invoker="trash_async" version="2.38">
- <doc xml:space="preserve">Asynchronously sends @file to the Trash location, if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="trash_finish"
- invoker="trash_finish"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file trashing operation, started with
- g_file_trash_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful trash, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_mountable"
- invoker="unmount_mountable"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_unmount_mountable_finish() to get
- the result of the operation.</doc>
- <doc-deprecated xml:space="preserve">Use g_file_unmount_mountable_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_mountable_finish"
- invoker="unmount_mountable_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an unmount operation, see g_file_unmount_mountable() for details.
- Finish an asynchronous unmount operation that was started
- with g_file_unmount_mountable().</doc>
- <doc-deprecated xml:space="preserve">Use g_file_unmount_mountable_with_operation_finish()
- instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_mountable_with_operation"
- invoker="unmount_mountable_with_operation"
- version="2.22">
- <doc xml:space="preserve">Unmounts a file of type #G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_unmount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_mountable_with_operation_finish"
- invoker="unmount_mountable_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an unmount operation,
- see g_file_unmount_mountable_with_operation() for details.
- Finish an asynchronous unmount operation that was started
- with g_file_unmount_mountable_with_operation().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="append_to" c:identifier="g_file_append_to" throws="1">
- <doc xml:space="preserve">Gets an output stream for appending data to the file.
- If the file doesn't already exist it is created.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level that
- is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- Some file systems don't allow all file names, and may return an
- %G_IO_ERROR_INVALID_FILENAME error. If the file is a directory the
- %G_IO_ERROR_IS_DIRECTORY error will be returned. Other errors are
- possible too, and depend on what kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_to_async" c:identifier="g_file_append_to_async">
- <doc xml:space="preserve">Asynchronously opens @file for appending.
- For more details, see g_file_append_to() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_append_to_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_to_finish"
- c:identifier="g_file_append_to_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file append operation started with
- g_file_append_to_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a valid #GFileOutputStream
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">#GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy" c:identifier="g_file_copy" throws="1">
- <doc xml:space="preserve">Copies the file @source to the location specified by @destination.
- Can not handle recursive copies of directories.
- If the flag #G_FILE_COPY_OVERWRITE is specified an already
- existing @destination file is overwritten.
- If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
- will be copied as symlinks, otherwise the target of the
- @source symlink will be copied.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @progress_callback is not %NULL, then the operation can be monitored
- by setting this to a #GFileProgressCallback function.
- @progress_callback_data will be passed to this function. It is guaranteed
- that this callback will be called after all data has been transferred with
- the total number of bytes copied during the operation.
- If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND error
- is returned, independent on the status of the @destination.
- If #G_FILE_COPY_OVERWRITE is not specified and the target exists, then
- the error %G_IO_ERROR_EXISTS is returned.
- If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
- error is returned. If trying to overwrite a directory with a directory the
- %G_IO_ERROR_WOULD_MERGE error is returned.
- If the source is a directory and the target does not exist, or
- #G_FILE_COPY_OVERWRITE is specified and the target is a file, then the
- %G_IO_ERROR_WOULD_RECURSE error is returned.
- If you are interested in copying the #GFile object itself (not the on-disk
- file), see g_file_dup().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">destination #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="4">
- <doc xml:space="preserve">function to callback with
- progress information, or %NULL if progress information is not needed</doc>
- <type name="FileProgressCallback" c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_async"
- c:identifier="g_file_copy_async"
- introspectable="0">
- <doc xml:space="preserve">Copies the file @source to the location specified by @destination
- asynchronously. For details of the behaviour, see g_file_copy().
- If @progress_callback is not %NULL, then that function that will be called
- just like in g_file_copy(). The callback will run in the default main context
- of the thread calling g_file_copy_async() — the same context as @callback is
- run in.
- When the operation is finished, @callback will be called. You can then call
- g_file_copy_finish() to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">destination #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">function to callback with progress
- information, or %NULL if progress information is not needed</doc>
- <type name="FileProgressCallback" c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_attributes"
- c:identifier="g_file_copy_attributes"
- throws="1">
- <doc xml:space="preserve">Copies the file attributes from @source to @destination.
- Normally only a subset of the file attributes are copied,
- those that are copies in a normal file copy operation
- (which for instance does not include e.g. owner). However
- if #G_FILE_COPY_ALL_METADATA is specified in @flags, then
- all the metadata that is possible to copy is copied. This
- is useful when implementing move by copy + delete source.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attributes were copied successfully,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile with attributes</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile to copy attributes to</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_finish" c:identifier="g_file_copy_finish" throws="1">
- <doc xml:space="preserve">Finishes copying the file started with g_file_copy_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create" c:identifier="g_file_create" throws="1">
- <doc xml:space="preserve">Creates a new file and returns an output stream for writing to it.
- The file must not already exist.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level
- that is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If a file or directory with this name already exists the
- %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
- allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
- error, and if the name is to long %G_IO_ERROR_FILENAME_TOO_LONG will
- be returned. Other errors are possible too, and depend on what kind
- of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream for the newly created
- file, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_async" c:identifier="g_file_create_async">
- <doc xml:space="preserve">Asynchronously creates a new file and returns an output stream
- for writing to it. The file must not already exist.
- For more details, see g_file_create() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_create_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_finish"
- c:identifier="g_file_create_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file create operation started with
- g_file_create_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_readwrite"
- c:identifier="g_file_create_readwrite"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Creates a new file and returns a stream for reading and
- writing to it. The file must not already exist.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level
- that is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If a file or directory with this name already exists, the
- %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
- allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
- error, and if the name is too long, %G_IO_ERROR_FILENAME_TOO_LONG
- will be returned. Other errors are possible too, and depend on what
- kind of filesystem the file is on.
- Note that in many non-local file cases read and write streams are
- not supported, so make sure you really need to do read and write
- streaming, rather than just opening for reading or writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream for the newly created
- file, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_readwrite_async"
- c:identifier="g_file_create_readwrite_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously creates a new file and returns a stream
- for reading and writing to it. The file must not already exist.
- For more details, see g_file_create_readwrite() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_create_readwrite_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_readwrite_finish"
- c:identifier="g_file_create_readwrite_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file create operation started with
- g_file_create_readwrite_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="delete" c:identifier="g_file_delete" throws="1">
- <doc xml:space="preserve">Deletes a file. If the @file is a directory, it will only be
- deleted if it is empty. This has the same semantics as g_unlink().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was deleted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="delete_async"
- c:identifier="g_file_delete_async"
- version="2.34">
- <doc xml:space="preserve">Asynchronously delete a file. If the @file is a directory, it will
- only be deleted if it is empty. This has the same semantics as
- g_unlink().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="delete_finish"
- c:identifier="g_file_delete_finish"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Finishes deleting a file started with g_file_delete_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was deleted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="dup" c:identifier="g_file_dup">
- <doc xml:space="preserve">Duplicates a #GFile handle. This operation does not duplicate
- the actual file or directory represented by the #GFile; see
- g_file_copy() if attempting to copy a file.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile that is a duplicate
- of the given #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="eject_mountable"
- c:identifier="g_file_eject_mountable"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Starts an asynchronous eject on a mountable.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_eject_mountable_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_file_eject_mountable_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_mountable_finish"
- c:identifier="g_file_eject_mountable_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous eject operation started by
- g_file_eject_mountable().</doc>
- <doc-deprecated xml:space="preserve">Use g_file_eject_mountable_with_operation_finish()
- instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file was ejected successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_mountable_with_operation"
- c:identifier="g_file_eject_mountable_with_operation"
- version="2.22">
- <doc xml:space="preserve">Starts an asynchronous eject on a mountable.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_eject_mountable_with_operation_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_mountable_with_operation_finish"
- c:identifier="g_file_eject_mountable_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous eject operation started by
- g_file_eject_mountable_with_operation().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file was ejected successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="enumerate_children"
- c:identifier="g_file_enumerate_children"
- throws="1">
- <doc xml:space="preserve">Gets the requested information about the files in a directory.
- The result is a #GFileEnumerator object that will give out
- #GFileInfo objects for all the files in the directory.
- The @attributes value is a string that specifies the file
- attributes that should be gathered. It is not an error if
- it's not possible to read a particular requested attribute
- from a file - it just won't be set. @attributes should
- be a comma-separated list of attributes or attribute wildcards.
- The wildcard "*" means all attributes, and a wildcard like
- "standard::*" means all attributes in the standard namespace.
- An example attribute query be "standard::*,owner::user".
- The standard attributes are available as defines, like
- #G_FILE_ATTRIBUTE_STANDARD_NAME.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- be returned. If the file is not a directory, the %G_IO_ERROR_NOT_DIRECTORY
- error will be returned. Other errors are possible too.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileEnumerator if successful,
- %NULL on error. Free the returned object with g_object_unref().</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="enumerate_children_async"
- c:identifier="g_file_enumerate_children_async">
- <doc xml:space="preserve">Asynchronously gets the requested information about the files
- in a directory. The result is a #GFileEnumerator object that will
- give out #GFileInfo objects for all the files in the directory.
- For more details, see g_file_enumerate_children() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called. You can
- then call g_file_enumerate_children_finish() to get the result of
- the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="enumerate_children_finish"
- c:identifier="g_file_enumerate_children_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an async enumerate children operation.
- See g_file_enumerate_children_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileEnumerator or %NULL
- if an error occurred.
- Free the returned object with g_object_unref().</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="equal" c:identifier="g_file_equal">
- <doc xml:space="preserve">Checks if the two given #GFiles refer to the same file.
- Note that two #GFiles that differ can still refer to the same
- file on the filesystem due to various forms of filename
- aliasing.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file1 and @file2 are equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="file2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_enclosing_mount"
- c:identifier="g_file_find_enclosing_mount"
- throws="1">
- <doc xml:space="preserve">Gets a #GMount for the #GFile.
- If the #GFileIface for @file does not have a mount (e.g.
- possibly a remote share), @error will be set to %G_IO_ERROR_NOT_FOUND
- and %NULL will be returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount where the @file is located
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_enclosing_mount_async"
- c:identifier="g_file_find_enclosing_mount_async">
- <doc xml:space="preserve">Asynchronously gets the mount for the file.
- For more details, see g_file_find_enclosing_mount() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_find_enclosing_mount_finish() to
- get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_enclosing_mount_finish"
- c:identifier="g_file_find_enclosing_mount_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous find mount request.
- See g_file_find_enclosing_mount_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GMount for given @file or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_basename" c:identifier="g_file_get_basename">
- <doc xml:space="preserve">Gets the base name (the last component of the path) for a given #GFile.
- If called for the top level of a system (such as the filesystem root
- or a uri like sftp://host/) it will return a single directory separator
- (and on Windows, possibly a drive letter).
- The base name is a byte string (not UTF-8). It has no defined encoding
- or rules other than it may not contain zero bytes. If you want to use
- filenames in a user interface you should use the display name that you
- can get by requesting the %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME
- attribute with g_file_query_info().
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string containing the #GFile's base name, or
- %NULL if given #GFile is invalid. The returned string should be
- freed with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_child" c:identifier="g_file_get_child">
- <doc xml:space="preserve">Gets a child of @file with basename equal to @name.
- Note that the file with that specific name might not exist, but
- you can still have a #GFile that points to it. You can use this
- for instance to create that file.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile to a child specified by @name.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">string containing the child's basename</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_child_for_display_name"
- c:identifier="g_file_get_child_for_display_name"
- throws="1">
- <doc xml:space="preserve">Gets the child of @file for a given @display_name (i.e. a UTF-8
- version of the name). If this function fails, it returns %NULL
- and @error will be set. This is very useful when constructing a
- #GFile for a new file and the user entered the filename in the
- user interface, for instance when you select a directory and
- type a filename in the file selector.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile to the specified child, or
- %NULL if the display name couldn't be converted.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">string to a possible child</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_parent" c:identifier="g_file_get_parent">
- <doc xml:space="preserve">Gets the parent directory for the @file.
- If the @file represents the root directory of the
- file system, then %NULL will be returned.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GFile structure to the
- parent of the given #GFile or %NULL if there is no parent. Free
- the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_parse_name" c:identifier="g_file_get_parse_name">
- <doc xml:space="preserve">Gets the parse name of the @file.
- A parse name is a UTF-8 string that describes the
- file such that one can get the #GFile back using
- g_file_parse_name().
- This is generally used to show the #GFile as a nice
- full-pathname kind of string in a user interface,
- like in a location entry.
- For local files with names that can safely be converted
- to UTF-8 the pathname is used, otherwise the IRI is used
- (a form of URI that allows UTF-8 characters unescaped).
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the #GFile's parse name.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path" c:identifier="g_file_get_path">
- <doc xml:space="preserve">Gets the local pathname for #GFile, if one exists. If non-%NULL, this is
- guaranteed to be an absolute, canonical path. It might contain symlinks.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string containing the #GFile's path, or %NULL
- if no such path exists. The returned string should be freed
- with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_relative_path" c:identifier="g_file_get_relative_path">
- <doc xml:space="preserve">Gets the path for @descendant relative to @parent.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string with the relative path from @descendant
- to @parent, or %NULL if @descendant doesn't have @parent as
- prefix. The returned string should be freed with g_free() when
- no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="descendant" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uri" c:identifier="g_file_get_uri">
- <doc xml:space="preserve">Gets the URI for the @file.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the #GFile's URI.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uri_scheme" c:identifier="g_file_get_uri_scheme">
- <doc xml:space="preserve">Gets the URI scheme for a #GFile.
- RFC 3986 decodes the scheme as:
- |[
- URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
- ]|
- Common schemes include "file", "http", "ftp", etc.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the URI scheme for the given
- #GFile. The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_parent"
- c:identifier="g_file_has_parent"
- version="2.24">
- <doc xml:space="preserve">Checks if @file has a parent, and optionally, if it is @parent.
- If @parent is %NULL then this function returns %TRUE if @file has any
- parent at all. If @parent is non-%NULL then %TRUE is only returned
- if @file is an immediate child of @parent.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file is an immediate child of @parent (or any parent in
- the case that @parent is %NULL).</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parent to check for, or %NULL</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_prefix" c:identifier="g_file_has_prefix">
- <doc xml:space="preserve">Checks whether @file has the prefix specified by @prefix.
- In other words, if the names of initial elements of @file's
- pathname match @prefix. Only full pathname elements are matched,
- so a path like /foo is not considered a prefix of /foobar, only
- of /foo/bar.
- A #GFile is not a prefix of itself. If you want to check for
- equality, use g_file_equal().
- This call does no I/O, as it works purely on names. As such it can
- sometimes return %FALSE even if @file is inside a @prefix (from a
- filesystem point of view), because the prefix of @file is an alias
- of @prefix.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @files's parent, grandparent, etc is @prefix,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="prefix" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_uri_scheme" c:identifier="g_file_has_uri_scheme">
- <doc xml:space="preserve">Checks to see if a #GFile has a given URI scheme.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if #GFile's backend supports the
- given URI scheme, %FALSE if URI scheme is %NULL,
- not supported, or #GFile is invalid.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="hash" c:identifier="g_file_hash">
- <doc xml:space="preserve">Creates a hash value for a #GFile.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if @file is not a valid #GFile, otherwise an
- integer that can be used as hash value for the #GFile.
- This function is intended for easily hashing a #GFile to
- add to a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to a #GFile</doc>
- <type name="File" c:type="gconstpointer"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_native" c:identifier="g_file_is_native">
- <doc xml:space="preserve">Checks to see if a file is native to the platform.
- A native file s one expressed in the platform-native filename format,
- e.g. "C:\Windows" or "/usr/bin/". This does not mean the file is local,
- as it might be on a locally mounted remote filesystem.
- On some systems non-native files may be available using the native
- filesystem via a userspace filesystem (FUSE), in these cases this call
- will return %FALSE, but g_file_get_path() will still return a native path.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file is native</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="load_contents"
- c:identifier="g_file_load_contents"
- throws="1">
- <doc xml:space="preserve">Loads the content of the file into memory. The data is always
- zero-terminated, but this is not included in the resultant @length.
- The returned @content should be freed with g_free() when no longer
- needed.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file's contents were successfully loaded.
- %FALSE if there were errors.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="contents"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a location to place the contents of the file</doc>
- <array length="2" zero-terminated="0" c:type="char**">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the length of the contents of the file,
- or %NULL if the length is not needed</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="etag_out"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the current entity tag for the file,
- or %NULL if the entity tag is not needed</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="load_contents_async"
- c:identifier="g_file_load_contents_async">
- <doc xml:space="preserve">Starts an asynchronous load of the @file's contents.
- For more details, see g_file_load_contents() which is
- the synchronous version of this call.
- When the load operation has completed, @callback will be called
- with @user data. To finish the operation, call
- g_file_load_contents_finish() with the #GAsyncResult returned by
- the @callback.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="load_contents_finish"
- c:identifier="g_file_load_contents_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous load of the @file's contents.
- The contents are placed in @contents, and @length is set to the
- size of the @contents string. The @content should be freed with
- g_free() when no longer needed. If @etag_out is present, it will be
- set to the new entity tag for the @file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the load was successful. If %FALSE and @error is
- present, it will be set appropriately.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="contents"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a location to place the contents of the file</doc>
- <array length="2" zero-terminated="0" c:type="char**">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the length of the contents of the file,
- or %NULL if the length is not needed</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="etag_out"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the current entity tag for the file,
- or %NULL if the entity tag is not needed</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="load_partial_contents_async"
- c:identifier="g_file_load_partial_contents_async"
- introspectable="0">
- <doc xml:space="preserve">Reads the partial contents of a file. A #GFileReadMoreCallback should
- be used to stop reading from the file when appropriate, else this
- function will behave exactly as g_file_load_contents_async(). This
- operation can be finished by g_file_load_partial_contents_finish().
- Users of this function should be aware that @user_data is passed to
- both the @read_more_callback and the @callback.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="read_more_callback" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileReadMoreCallback to receive partial data
- and to specify whether further data should be read</doc>
- <type name="FileReadMoreCallback" c:type="GFileReadMoreCallback"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback functions</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="load_partial_contents_finish"
- c:identifier="g_file_load_partial_contents_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous partial load operation that was started
- with g_file_load_partial_contents_async(). The data is always
- zero-terminated, but this is not included in the resultant @length.
- The returned @content should be freed with g_free() when no longer
- needed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the load was successful. If %FALSE and @error is
- present, it will be set appropriately.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="contents"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a location to place the contents of the file</doc>
- <array length="2" zero-terminated="0" c:type="char**">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the length of the contents of the file,
- or %NULL if the length is not needed</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="etag_out"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the current entity tag for the file,
- or %NULL if the entity tag is not needed</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_directory"
- c:identifier="g_file_make_directory"
- throws="1">
- <doc xml:space="preserve">Creates a directory. Note that this will only create a child directory
- of the immediate parent directory of the path or URI given by the #GFile.
- To recursively create directories, see g_file_make_directory_with_parents().
- This function will fail if the parent directory does not exist, setting
- @error to %G_IO_ERROR_NOT_FOUND. If the file system doesn't support
- creating directories, this function will fail, setting @error to
- %G_IO_ERROR_NOT_SUPPORTED.
- For a local #GFile the newly created directory will have the default
- (current) ownership and permissions of the current process.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful creation, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_directory_async"
- c:identifier="g_file_make_directory_async"
- version="2.38">
- <doc xml:space="preserve">Asynchronously creates a directory.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_directory_finish"
- c:identifier="g_file_make_directory_finish"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous directory creation, started with
- g_file_make_directory_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful directory creation, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_directory_with_parents"
- c:identifier="g_file_make_directory_with_parents"
- version="2.18"
- throws="1">
- <doc xml:space="preserve">Creates a directory and any parent directories that may not
- exist similar to 'mkdir -p'. If the file system does not support
- creating directories, this function will fail, setting @error to
- %G_IO_ERROR_NOT_SUPPORTED. If the directory itself already exists,
- this function will fail setting @error to %G_IO_ERROR_EXISTS, unlike
- the similar g_mkdir_with_parents().
- For a local #GFile the newly created directories will have the default
- (current) ownership and permissions of the current process.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if all directories have been successfully created, %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="make_symbolic_link"
- c:identifier="g_file_make_symbolic_link"
- throws="1">
- <doc xml:space="preserve">Creates a symbolic link named @file which contains the string
- @symlink_value.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on the creation of a new symlink, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile with the name of the symlink to create</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="symlink_value" transfer-ownership="none">
- <doc xml:space="preserve">a string with the path for the target of the new symlink</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="measure_disk_usage"
- c:identifier="g_file_measure_disk_usage"
- version="2.38"
- introspectable="0"
- throws="1">
- <doc xml:space="preserve">Recursively measures the disk usage of @file.
- This is essentially an analog of the 'du' command, but it also
- reports the number of directories and non-directory files encountered
- (including things like symbolic links).
- By default, errors are only reported against the toplevel file
- itself. Errors found while recursing are silently ignored, unless
- %G_FILE_DISK_USAGE_REPORT_ALL_ERRORS is given in @flags.
- The returned size, @disk_usage, is in bytes and should be formatted
- with g_format_size() in order to get something reasonable for showing
- in a user interface.
- @progress_callback and @progress_data can be given to request
- periodic progress updates while scanning. See the documentation for
- #GFileMeasureProgressCallback for information about when and how the
- callback will be invoked.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, with the out parameters set.
- %FALSE otherwise, with @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileMeasureFlags</doc>
- <type name="FileMeasureFlags" c:type="GFileMeasureFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">a #GFileMeasureProgressCallback</doc>
- <type name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"/>
- </parameter>
- <parameter name="progress_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="disk_usage"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of bytes of disk space used</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_dirs"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_files"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of non-directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="measure_disk_usage_async"
- c:identifier="g_file_measure_disk_usage_async"
- version="2.38"
- introspectable="0">
- <doc xml:space="preserve">Recursively measures the disk usage of @file.
- This is the asynchronous version of g_file_measure_disk_usage(). See
- there for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileMeasureFlags</doc>
- <type name="FileMeasureFlags" c:type="GFileMeasureFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">a #GFileMeasureProgressCallback</doc>
- <type name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"/>
- </parameter>
- <parameter name="progress_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="measure_disk_usage_finish"
- c:identifier="g_file_measure_disk_usage_finish"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Collects the results from an earlier call to
- g_file_measure_disk_usage_async(). See g_file_measure_disk_usage() for
- more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, with the out parameters set.
- %FALSE otherwise, with @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="disk_usage"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of bytes of disk space used</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_dirs"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_files"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of non-directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="monitor"
- c:identifier="g_file_monitor"
- version="2.18"
- throws="1">
- <doc xml:space="preserve">Obtains a file or directory monitor for the given file,
- depending on the type of the file.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="monitor_directory"
- c:identifier="g_file_monitor_directory"
- throws="1">
- <doc xml:space="preserve">Obtains a directory monitor for the given file.
- This may fail if directory monitoring is not supported.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- It does not make sense for @flags to contain
- %G_FILE_MONITOR_WATCH_HARD_LINKS, since hard links can not be made to
- directories. It is not possible to monitor all the files in a
- directory for changes made via hard links; if you want to do this then
- you must register individual watches with g_file_monitor().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="monitor_file"
- c:identifier="g_file_monitor_file"
- throws="1">
- <doc xml:space="preserve">Obtains a file monitor for the given file. If no file notification
- mechanism exists, then regular polling of the file is used.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @flags contains %G_FILE_MONITOR_WATCH_HARD_LINKS then the monitor
- will also attempt to report changes made to the file via another
- filename (ie, a hard link). Without this flag, you can only rely on
- changes made through the filename contained in @file to be
- reported. Using this flag may result in an increase in resource
- usage, and may not have any effect depending on the #GFileMonitor
- backend and/or filesystem type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="mount_enclosing_volume"
- c:identifier="g_file_mount_enclosing_volume">
- <doc xml:space="preserve">Starts a @mount_operation, mounting the volume that contains
- the file @location.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_mount_enclosing_volume_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="mount_enclosing_volume_finish"
- c:identifier="g_file_mount_enclosing_volume_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a mount operation started by g_file_mount_enclosing_volume().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred,
- this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="mount_mountable" c:identifier="g_file_mount_mountable">
- <doc xml:space="preserve">Mounts a file of type G_FILE_TYPE_MOUNTABLE.
- Using @mount_operation, you can request callbacks when, for instance,
- passwords are needed during authentication.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_mount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="mount_mountable_finish"
- c:identifier="g_file_mount_mountable_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a mount operation. See g_file_mount_mountable() for details.
- Finish an asynchronous mount operation that was started
- with g_file_mount_mountable().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="move" c:identifier="g_file_move" throws="1">
- <doc xml:space="preserve">Tries to move the file or directory @source to the location specified
- by @destination. If native move operations are supported then this is
- used, otherwise a copy + delete fallback is used. The native
- implementation may support moving directories (for instance on moves
- inside the same filesystem), but the fallback code does not.
- If the flag #G_FILE_COPY_OVERWRITE is specified an already
- existing @destination file is overwritten.
- If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
- will be copied as symlinks, otherwise the target of the
- @source symlink will be copied.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @progress_callback is not %NULL, then the operation can be monitored
- by setting this to a #GFileProgressCallback function.
- @progress_callback_data will be passed to this function. It is
- guaranteed that this callback will be called after all data has been
- transferred with the total number of bytes copied during the operation.
- If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND
- error is returned, independent on the status of the @destination.
- If #G_FILE_COPY_OVERWRITE is not specified and the target exists,
- then the error %G_IO_ERROR_EXISTS is returned.
- If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
- error is returned. If trying to overwrite a directory with a directory the
- %G_IO_ERROR_WOULD_MERGE error is returned.
- If the source is a directory and the target does not exist, or
- #G_FILE_COPY_OVERWRITE is specified and the target is a file, then
- the %G_IO_ERROR_WOULD_RECURSE error may be returned (if the native
- move operation isn't available).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful move, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">#GFile pointing to the source location</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">#GFile pointing to the destination location</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="4">
- <doc xml:space="preserve">#GFileProgressCallback
- function for updates</doc>
- <type name="FileProgressCallback" c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">gpointer to user data for
- the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="open_readwrite"
- c:identifier="g_file_open_readwrite"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Opens an existing file for reading and writing. The result is
- a #GFileIOStream that can be used to read and write the contents
- of the file.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- be returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
- error will be returned. Other errors are possible too, and depend on
- what kind of filesystem the file is on. Note that in many non-local
- file cases read and write streams are not supported, so make sure you
- really need to do read and write streaming, rather than just opening
- for reading or writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to open</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="open_readwrite_async"
- c:identifier="g_file_open_readwrite_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously opens @file for reading and writing.
- For more details, see g_file_open_readwrite() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_open_readwrite_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="open_readwrite_finish"
- c:identifier="g_file_open_readwrite_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file read operation started with
- g_file_open_readwrite_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="poll_mountable"
- c:identifier="g_file_poll_mountable"
- version="2.22">
- <doc xml:space="preserve">Polls a file of type #G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_mount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="poll_mountable_finish"
- c:identifier="g_file_poll_mountable_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes a poll operation. See g_file_poll_mountable() for details.
- Finish an asynchronous poll operation that was polled
- with g_file_poll_mountable().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully. %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_default_handler"
- c:identifier="g_file_query_default_handler"
- throws="1">
- <doc xml:space="preserve">Returns the #GAppInfo that is registered as the default
- application to handle the file specified by @file.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GAppInfo if the handle was found,
- %NULL if there were errors.
- When you are done with it, release it with g_object_unref()</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile to open</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_exists" c:identifier="g_file_query_exists">
- <doc xml:space="preserve">Utility function to check if a particular file exists. This is
- implemented using g_file_query_info() and as such does blocking I/O.
- Note that in many cases it is racy to first check for file existence
- and then execute something based on the outcome of that, because the
- file might have been created or removed in between the operations. The
- general approach to handling that is to not check, but just do the
- operation and handle the errors as they come.
- As an example of race-free checking, take the case of reading a file,
- and if it doesn't exist, creating it. There are two racy versions: read
- it, and on error create it; and: check if it exists, if not create it.
- These can both result in two processes creating the file (with perhaps
- a partially written file as the result). The correct approach is to
- always try to create the file with g_file_create() which will either
- atomically create the file or fail with a %G_IO_ERROR_EXISTS error.
- However, in many cases an existence check is useful in a user interface,
- for instance to make a menu item sensitive/insensitive, so that you don't
- have to fool users that something is possible and then just show an error
- dialog. If you do this, you should make sure to also handle the errors
- that can happen due to races when you execute the operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file exists (and can be detected without error),
- %FALSE otherwise (or if cancelled).</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_file_type"
- c:identifier="g_file_query_file_type"
- version="2.18">
- <doc xml:space="preserve">Utility function to inspect the #GFileType of a file. This is
- implemented using g_file_query_info() and as such does blocking I/O.
- The primary use case of this method is to check if a file is
- a regular file, directory, or symlink.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GFileType of the file and #G_FILE_TYPE_UNKNOWN
- if the file does not exist</doc>
- <type name="FileType" c:type="GFileType"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags passed to g_file_query_info()</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_filesystem_info"
- c:identifier="g_file_query_filesystem_info"
- throws="1">
- <doc xml:space="preserve">Similar to g_file_query_info(), but obtains information
- about the filesystem the @file is on, rather than the file itself.
- For instance the amount of space available and the type of
- the filesystem.
- The @attributes value is a string that specifies the attributes
- that should be gathered. It is not an error if it's not possible
- to read a particular requested attribute from a file - it just
- won't be set. @attributes should be a comma-separated list of
- attributes or attribute wildcards. The wildcard "*" means all
- attributes, and a wildcard like "filesystem::*" means all attributes
- in the filesystem namespace. The standard namespace for filesystem
- attributes is "filesystem". Common attributes of interest are
- #G_FILE_ATTRIBUTE_FILESYSTEM_SIZE (the total size of the filesystem
- in bytes), #G_FILE_ATTRIBUTE_FILESYSTEM_FREE (number of bytes available),
- and #G_FILE_ATTRIBUTE_FILESYSTEM_TYPE (type of the filesystem).
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- be returned. Other errors are possible too, and depend on what
- kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo or %NULL if there was an error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_filesystem_info_async"
- c:identifier="g_file_query_filesystem_info_async">
- <doc xml:space="preserve">Asynchronously gets the requested information about the filesystem
- that the specified @file is on. The result is a #GFileInfo object
- that contains key-value attributes (such as type or size for the
- file).
- For more details, see g_file_query_filesystem_info() which is the
- synchronous version of this call.
- When the operation is finished, @callback will be called. You can
- then call g_file_query_info_finish() to get the result of the
- operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_filesystem_info_finish"
- c:identifier="g_file_query_filesystem_info_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous filesystem info query.
- See g_file_query_filesystem_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo for given @file
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info" c:identifier="g_file_query_info" throws="1">
- <doc xml:space="preserve">Gets the requested information about specified @file.
- The result is a #GFileInfo object that contains key-value
- attributes (such as the type or size of the file).
- The @attributes value is a string that specifies the file
- attributes that should be gathered. It is not an error if
- it's not possible to read a particular requested attribute
- from a file - it just won't be set. @attributes should be a
- comma-separated list of attributes or attribute wildcards.
- The wildcard "*" means all attributes, and a wildcard like
- "standard::*" means all attributes in the standard namespace.
- An example attribute query be "standard::*,owner::user".
- The standard attributes are available as defines, like
- #G_FILE_ATTRIBUTE_STANDARD_NAME.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- For symlinks, normally the information about the target of the
- symlink is returned, rather than information about the symlink
- itself. However if you pass #G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
- in @flags the information about the symlink itself will be returned.
- Also, for symlinks that point to non-existing files the information
- about the symlink itself will be returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
- returned. Other errors are possible too, and depend on what kind of
- filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the given @file, or %NULL
- on error. Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_async" c:identifier="g_file_query_info_async">
- <doc xml:space="preserve">Asynchronously gets the requested information about specified @file.
- The result is a #GFileInfo object that contains key-value attributes
- (such as type or size for the file).
- For more details, see g_file_query_info() which is the synchronous
- version of this call.
- When the operation is finished, @callback will be called. You can
- then call g_file_query_info_finish() to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_finish"
- c:identifier="g_file_query_info_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file info query.
- See g_file_query_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo for given @file
- or %NULL on error. Free the returned object with
- g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_settable_attributes"
- c:identifier="g_file_query_settable_attributes"
- throws="1">
- <doc xml:space="preserve">Obtain the list of settable attributes for the file.
- Returns the type and full attribute name of all the attributes
- that can be set on this file. This doesn't mean setting it will
- always succeed though, you might get an access failure, or some
- specific file may not support a specific attribute.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList describing the settable attributes.
- When you are done with it, release it with
- g_file_attribute_info_list_unref()</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_writable_namespaces"
- c:identifier="g_file_query_writable_namespaces"
- throws="1">
- <doc xml:space="preserve">Obtain the list of attribute namespaces where new attributes
- can be created by a user. An example of this is extended
- attributes (in the "xattr" namespace).
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList describing the writable namespaces.
- When you are done with it, release it with
- g_file_attribute_info_list_unref()</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read" c:identifier="g_file_read" throws="1">
- <doc xml:space="preserve">Opens a file for reading. The result is a #GFileInputStream that
- can be used to read the contents of the file.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
- returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
- error will be returned. Other errors are possible too, and depend
- on what kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to read</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_async" c:identifier="g_file_read_async">
- <doc xml:space="preserve">Asynchronously opens @file for reading.
- For more details, see g_file_read() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_read_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_finish" c:identifier="g_file_read_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file read operation started with
- g_file_read_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace" c:identifier="g_file_replace" throws="1">
- <doc xml:space="preserve">Returns an output stream for overwriting the file, possibly
- creating a backup copy of the file first. If the file doesn't exist,
- it will be created.
- This will try to replace the file in the safest way possible so
- that any errors during the writing will not affect an already
- existing copy of the file. For instance, for local files it
- may write to a temporary file and then atomically rename over
- the destination when the stream is closed.
- By default files created are generally readable by everyone,
- but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- will be made readable only to the current user, to the level that
- is supported on the target filesystem.
- If @cancellable is not %NULL, then the operation can be cancelled
- by triggering the cancellable object from another thread. If the
- operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- returned.
- If you pass in a non-%NULL @etag value and @file already exists, then
- this value is compared to the current entity tag of the file, and if
- they differ an %G_IO_ERROR_WRONG_ETAG error is returned. This
- generally means that the file has been changed since you last read
- it. You can get the new etag from g_file_output_stream_get_etag()
- after you've finished writing and closed the #GFileOutputStream. When
- you load a new file you can use g_file_input_stream_query_info() to
- get the etag of the file.
- If @make_backup is %TRUE, this function will attempt to make a
- backup of the current file before overwriting it. If this fails
- a %G_IO_ERROR_CANT_CREATE_BACKUP error will be returned. If you
- want to replace anyway, try again with @make_backup set to %FALSE.
- If the file is a directory the %G_IO_ERROR_IS_DIRECTORY error will
- be returned, and if the file is some other form of non-regular file
- then a %G_IO_ERROR_NOT_REGULAR_FILE error will be returned. Some
- file systems don't allow all file names, and may return an
- %G_IO_ERROR_INVALID_FILENAME error, and if the name is to long
- %G_IO_ERROR_FILENAME_TOO_LONG will be returned. Other errors are
- possible too, and depend on what kind of filesystem the file is on.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional [entity tag][gfile-etag]
- for the current #GFile, or #NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_async" c:identifier="g_file_replace_async">
- <doc xml:space="preserve">Asynchronously overwrites the file, replacing the contents,
- possibly creating a backup copy of the file first.
- For more details, see g_file_replace() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_replace_finish() to get the result
- of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an [entity tag][gfile-etag] for the current #GFile,
- or %NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_contents"
- c:identifier="g_file_replace_contents"
- throws="1">
- <doc xml:space="preserve">Replaces the contents of @file with @contents of @length bytes.
- If @etag is specified (not %NULL), any existing file must have that etag,
- or the error %G_IO_ERROR_WRONG_ETAG will be returned.
- If @make_backup is %TRUE, this function will attempt to make a backup
- of @file. Internally, it uses g_file_replace(), so will try to replace the
- file contents in the safest way possible. For example, atomic renames are
- used when replacing local files’ contents.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- The returned @new_etag can be used to verify that the file hasn't
- changed the next time it is saved over.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function
- will return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="contents" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the new contents for @file</doc>
- <array length="1" zero-terminated="0" c:type="char*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of @contents in bytes</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the old [entity-tag][gfile-etag] for the document,
- or %NULL</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="new_etag"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to a new [entity tag][gfile-etag]
- for the document. This should be freed with g_free() when no longer
- needed, or %NULL</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_contents_async"
- c:identifier="g_file_replace_contents_async">
- <doc xml:space="preserve">Starts an asynchronous replacement of @file with the given
- @contents of @length bytes. @etag will replace the document's
- current entity tag.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_replace_contents_finish().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- If @make_backup is %TRUE, this function will attempt to
- make a backup of @file.
- Note that no copy of @content will be made, so it must stay valid
- until @callback is called. See g_file_replace_contents_bytes_async()
- for a #GBytes version that will automatically hold a reference to the
- contents (without copying) for the duration of the call.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="contents" transfer-ownership="none">
- <doc xml:space="preserve">string of contents to replace the file with</doc>
- <array length="1" zero-terminated="0" c:type="char*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of @contents in bytes</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a new [entity tag][gfile-etag] for the @file, or %NULL</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_contents_bytes_async"
- c:identifier="g_file_replace_contents_bytes_async"
- version="2.40">
- <doc xml:space="preserve">Same as g_file_replace_contents_async() but takes a #GBytes input instead.
- This function will keep a ref on @contents until the operation is done.
- Unlike g_file_replace_contents_async() this allows forgetting about the
- content without waiting for the callback.
- When this operation has completed, @callback will be called with
- @user_user data, and the operation can be finalized with
- g_file_replace_contents_finish().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="contents" transfer-ownership="none">
- <doc xml:space="preserve">a #GBytes</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a new [entity tag][gfile-etag] for the @file, or %NULL</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_contents_finish"
- c:identifier="g_file_replace_contents_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous replace of the given @file. See
- g_file_replace_contents_async(). Sets @new_etag to the new entity
- tag for the document, if present.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="new_etag"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location of a new [entity tag][gfile-etag]
- for the document. This should be freed with g_free() when it is no
- longer needed, or %NULL</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_finish"
- c:identifier="g_file_replace_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file replace operation started with
- g_file_replace_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_readwrite"
- c:identifier="g_file_replace_readwrite"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Returns an output stream for overwriting the file in readwrite mode,
- possibly creating a backup copy of the file first. If the file doesn't
- exist, it will be created.
- For details about the behaviour, see g_file_replace() which does the
- same thing but returns an output stream only.
- Note that in many non-local file cases read and write streams are not
- supported, so make sure you really need to do read and write streaming,
- rather than just opening for reading or writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional [entity tag][gfile-etag]
- for the current #GFile, or #NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_readwrite_async"
- c:identifier="g_file_replace_readwrite_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously overwrites the file in read-write mode,
- replacing the contents, possibly creating a backup copy
- of the file first.
- For more details, see g_file_replace_readwrite() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_replace_readwrite_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an [entity tag][gfile-etag] for the current #GFile,
- or %NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace_readwrite_finish"
- c:identifier="g_file_replace_readwrite_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file replace operation started with
- g_file_replace_readwrite_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="resolve_relative_path"
- c:identifier="g_file_resolve_relative_path">
- <doc xml:space="preserve">Resolves a relative path for @file to an absolute path.
- This call does no blocking I/O.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFile to the resolved path.
- %NULL if @relative_path is %NULL or if @file is invalid.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="relative_path" transfer-ownership="none">
- <doc xml:space="preserve">a given relative path string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute"
- c:identifier="g_file_set_attribute"
- throws="1">
- <doc xml:space="preserve">Sets an attribute in the file with attribute name @attribute to @value.
- Some attributes can be unset by setting @attribute to
- %G_FILE_ATTRIBUTE_TYPE_INVALID and @value_p to %NULL.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attribute was set, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The type of the attribute</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </parameter>
- <parameter name="value_p"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the value (or the pointer
- itself if the type is a pointer type)</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_byte_string"
- c:identifier="g_file_set_attribute_byte_string"
- throws="1">
- <doc xml:space="preserve">Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING to @value.
- If @attribute is of a different type, this operation will fail,
- returning %FALSE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @attribute was successfully set to @value
- in the @file, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's new value</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_int32"
- c:identifier="g_file_set_attribute_int32"
- throws="1">
- <doc xml:space="preserve">Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT32 to @value.
- If @attribute is of a different type, this operation will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @attribute was successfully set to @value
- in the @file, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #gint32 containing the attribute's new value</doc>
- <type name="gint32" c:type="gint32"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_int64"
- c:identifier="g_file_set_attribute_int64"
- throws="1">
- <doc xml:space="preserve">Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT64 to @value.
- If @attribute is of a different type, this operation will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @attribute was successfully set, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #guint64 containing the attribute's new value</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_string"
- c:identifier="g_file_set_attribute_string"
- throws="1">
- <doc xml:space="preserve">Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_STRING to @value.
- If @attribute is of a different type, this operation will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @attribute was successfully set, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's value</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_uint32"
- c:identifier="g_file_set_attribute_uint32"
- throws="1">
- <doc xml:space="preserve">Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT32 to @value.
- If @attribute is of a different type, this operation will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @attribute was successfully set to @value
- in the @file, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #guint32 containing the attribute's new value</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_uint64"
- c:identifier="g_file_set_attribute_uint64"
- throws="1">
- <doc xml:space="preserve">Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT64 to @value.
- If @attribute is of a different type, this operation will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @attribute was successfully set to @value
- in the @file, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #guint64 containing the attribute's new value</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attributes_async"
- c:identifier="g_file_set_attributes_async">
- <doc xml:space="preserve">Asynchronously sets the attributes of @file with @info.
- For more details, see g_file_set_attributes_from_info(),
- which is the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_set_attributes_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attributes_finish"
- c:identifier="g_file_set_attributes_finish"
- throws="1">
- <doc xml:space="preserve">Finishes setting an attribute started in g_file_set_attributes_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attributes were set correctly, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attributes_from_info"
- c:identifier="g_file_set_attributes_from_info"
- throws="1">
- <doc xml:space="preserve">Tries to set all attributes in the #GFileInfo on the target
- values, not stopping on the first error.
- If there is any error during this operation then @error will
- be set to the first error. Error on particular fields are flagged
- by setting the "status" field in the attribute value to
- %G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING, which means you can
- also detect further errors.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if there was any error, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_display_name"
- c:identifier="g_file_set_display_name"
- throws="1">
- <doc xml:space="preserve">Renames @file to the specified display name.
- The display name is converted from UTF-8 to the correct encoding
- for the target filesystem if possible and the @file is renamed to this.
- If you want to implement a rename operation in the user interface the
- edit name (#G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME) should be used as the
- initial value in the rename widget, and then the result after editing
- should be passed to g_file_set_display_name().
- On success the resulting converted filename is returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile specifying what @file was renamed to,
- or %NULL if there was an error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_display_name_async"
- c:identifier="g_file_set_display_name_async">
- <doc xml:space="preserve">Asynchronously sets the display name for a given #GFile.
- For more details, see g_file_set_display_name() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called.
- You can then call g_file_set_display_name_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_display_name_finish"
- c:identifier="g_file_set_display_name_finish"
- throws="1">
- <doc xml:space="preserve">Finishes setting a display name started with
- g_file_set_display_name_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="start_mountable"
- c:identifier="g_file_start_mountable"
- version="2.22">
- <doc xml:space="preserve">Starts a file of type #G_FILE_TYPE_MOUNTABLE.
- Using @start_operation, you can request callbacks when, for instance,
- passwords are needed during authentication.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_mount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="DriveStartFlags" c:type="GDriveStartFlags"/>
- </parameter>
- <parameter name="start_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation, or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="start_mountable_finish"
- c:identifier="g_file_start_mountable_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes a start operation. See g_file_start_mountable() for details.
- Finish an asynchronous start operation that was started
- with g_file_start_mountable().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully. %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="stop_mountable"
- c:identifier="g_file_stop_mountable"
- version="2.22">
- <doc xml:space="preserve">Stops a file of type #G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_stop_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="stop_mountable_finish"
- c:identifier="g_file_stop_mountable_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an stop operation, see g_file_stop_mountable() for details.
- Finish an asynchronous stop operation that was started
- with g_file_stop_mountable().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="supports_thread_contexts"
- c:identifier="g_file_supports_thread_contexts"
- version="2.22">
- <doc xml:space="preserve">Checks if @file supports
- [thread-default contexts][g-main-context-push-thread-default-context].
- If this returns %FALSE, you cannot perform asynchronous operations on
- @file in a thread that has a thread-default context.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Whether or not @file supports thread-default contexts.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="trash" c:identifier="g_file_trash" throws="1">
- <doc xml:space="preserve">Sends @file to the "Trashcan", if possible. This is similar to
- deleting it, but the user can recover it before emptying the trashcan.
- Not all file systems support trashing, so this call can return the
- %G_IO_ERROR_NOT_SUPPORTED error.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful trash, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to send to trash</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="trash_async"
- c:identifier="g_file_trash_async"
- version="2.38">
- <doc xml:space="preserve">Asynchronously sends @file to the Trash location, if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="trash_finish"
- c:identifier="g_file_trash_finish"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous file trashing operation, started with
- g_file_trash_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful trash, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_mountable"
- c:identifier="g_file_unmount_mountable"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_unmount_mountable_finish() to get
- the result of the operation.</doc>
- <doc-deprecated xml:space="preserve">Use g_file_unmount_mountable_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_mountable_finish"
- c:identifier="g_file_unmount_mountable_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an unmount operation, see g_file_unmount_mountable() for details.
- Finish an asynchronous unmount operation that was started
- with g_file_unmount_mountable().</doc>
- <doc-deprecated xml:space="preserve">Use g_file_unmount_mountable_with_operation_finish()
- instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_mountable_with_operation"
- c:identifier="g_file_unmount_mountable_with_operation"
- version="2.22">
- <doc xml:space="preserve">Unmounts a file of type #G_FILE_TYPE_MOUNTABLE.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- When the operation is finished, @callback will be called.
- You can then call g_file_unmount_mountable_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_mountable_with_operation_finish"
- c:identifier="g_file_unmount_mountable_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an unmount operation,
- see g_file_unmount_mountable_with_operation() for details.
- Finish an asynchronous unmount operation that was started
- with g_file_unmount_mountable_with_operation().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="FileAttributeInfo" c:type="GFileAttributeInfo">
- <doc xml:space="preserve">Information about a specific attribute.</doc>
- <field name="name" writable="1">
- <doc xml:space="preserve">the name of the attribute.</doc>
- <type name="utf8" c:type="char*"/>
- </field>
- <field name="type" writable="1">
- <doc xml:space="preserve">the #GFileAttributeType type of the attribute.</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">a set of #GFileAttributeInfoFlags.</doc>
- <type name="FileAttributeInfoFlags" c:type="GFileAttributeInfoFlags"/>
- </field>
- </record>
- <bitfield name="FileAttributeInfoFlags"
- glib:type-name="GFileAttributeInfoFlags"
- glib:get-type="g_file_attribute_info_flags_get_type"
- c:type="GFileAttributeInfoFlags">
- <doc xml:space="preserve">Flags specifying the behaviour of an attribute.</doc>
- <member name="none"
- value="0"
- c:identifier="G_FILE_ATTRIBUTE_INFO_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags set.</doc>
- </member>
- <member name="copy_with_file"
- value="1"
- c:identifier="G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE"
- glib:nick="copy-with-file">
- <doc xml:space="preserve">copy the attribute values when the file is copied.</doc>
- </member>
- <member name="copy_when_moved"
- value="2"
- c:identifier="G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED"
- glib:nick="copy-when-moved">
- <doc xml:space="preserve">copy the attribute values when the file is moved.</doc>
- </member>
- </bitfield>
- <record name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList"
- glib:type-name="GFileAttributeInfoList"
- glib:get-type="g_file_attribute_info_list_get_type"
- c:symbol-prefix="file_attribute_info_list">
- <doc xml:space="preserve">Acts as a lightweight registry for possible valid file attributes.
- The registry stores Key-Value pair formats as #GFileAttributeInfos.</doc>
- <field name="infos" writable="1">
- <doc xml:space="preserve">an array of #GFileAttributeInfos.</doc>
- <type name="FileAttributeInfo" c:type="GFileAttributeInfo*"/>
- </field>
- <field name="n_infos" writable="1">
- <doc xml:space="preserve">the number of values in the array.</doc>
- <type name="gint" c:type="int"/>
- </field>
- <constructor name="new" c:identifier="g_file_attribute_info_list_new">
- <doc xml:space="preserve">Creates a new file attribute info list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList.</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- </constructor>
- <method name="add" c:identifier="g_file_attribute_info_list_add">
- <doc xml:space="preserve">Adds a new attribute with @name to the @list, setting
- its @type and @flags.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeInfoList.</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the attribute to add.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the #GFileAttributeType for the attribute.</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileAttributeInfoFlags for the attribute.</doc>
- <type name="FileAttributeInfoFlags"
- c:type="GFileAttributeInfoFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="dup" c:identifier="g_file_attribute_info_list_dup">
- <doc xml:space="preserve">Makes a duplicate of a file attribute info list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a copy of the given @list.</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeInfoList to duplicate.</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="lookup" c:identifier="g_file_attribute_info_list_lookup">
- <doc xml:space="preserve">Gets the file attribute with the name @name from @list.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeInfo for the @name, or %NULL if an
- attribute isn't found.</doc>
- <type name="FileAttributeInfo" c:type="const GFileAttributeInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeInfoList.</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the attribute to lookup.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="g_file_attribute_info_list_ref">
- <doc xml:space="preserve">References a file attribute info list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileAttributeInfoList or %NULL on error.</doc>
- <type name="FileAttributeInfoList" c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeInfoList to reference.</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="g_file_attribute_info_list_unref">
- <doc xml:space="preserve">Removes a reference from the given @list. If the reference count
- falls to zero, the @list is deleted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">The #GFileAttributeInfoList to unreference.</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="FileAttributeMatcher"
- c:type="GFileAttributeMatcher"
- glib:type-name="GFileAttributeMatcher"
- glib:get-type="g_file_attribute_matcher_get_type"
- c:symbol-prefix="file_attribute_matcher">
- <doc xml:space="preserve">Determines if a string matches a file attribute.</doc>
- <constructor name="new" c:identifier="g_file_attribute_matcher_new">
- <doc xml:space="preserve">Creates a new file attribute matcher, which matches attributes
- against a given string. #GFileAttributeMatchers are reference
- counted structures, and are created with a reference count of 1. If
- the number of references falls to 0, the #GFileAttributeMatcher is
- automatically destroyed.
- The @attribute string should be formatted with specific keys separated
- from namespaces with a double colon. Several "namespace::key" strings may be
- concatenated with a single comma (e.g. "standard::type,standard::is-hidden").
- The wildcard "*" may be used to match all keys and namespaces, or
- "namespace::*" will match all keys in a given namespace.
- ## Examples of file attribute matcher strings and results
- - `"*"`: matches all attributes.
- - `"standard::is-hidden"`: matches only the key is-hidden in the
- standard namespace.
- - `"standard::type,unix::*"`: matches the type key in the standard
- namespace and all keys in the unix namespace.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeMatcher</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </return-value>
- <parameters>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute string to match.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="enumerate_namespace"
- c:identifier="g_file_attribute_matcher_enumerate_namespace">
- <doc xml:space="preserve">Checks if the matcher will match all of the keys in a given namespace.
- This will always return %TRUE if a wildcard character is in use (e.g. if
- matcher was created with "standard::*" and @ns is "standard", or if matcher was created
- using "*" and namespace is anything.)
- TODO: this is awkwardly worded.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the matcher matches all of the entries
- in the given @ns, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- <parameter name="ns" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a file attribute namespace.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="enumerate_next"
- c:identifier="g_file_attribute_matcher_enumerate_next">
- <doc xml:space="preserve">Gets the next matched attribute from a #GFileAttributeMatcher.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the next attribute or %NULL if
- no more attribute exist.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="matches" c:identifier="g_file_attribute_matcher_matches">
- <doc xml:space="preserve">Checks if an attribute will be matched by an attribute matcher. If
- the matcher was created with the "*" matching string, this function
- will always return %TRUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @attribute matches @matcher. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="matches_only"
- c:identifier="g_file_attribute_matcher_matches_only">
- <doc xml:space="preserve">Checks if a attribute matcher only matches a given attribute. Always
- returns %FALSE if "*" was used when creating the matcher.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the matcher only matches @attribute. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="g_file_attribute_matcher_ref">
- <doc xml:space="preserve">References a file attribute matcher.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="subtract" c:identifier="g_file_attribute_matcher_subtract">
- <doc xml:space="preserve">Subtracts all attributes of @subtract from @matcher and returns
- a matcher that supports those attributes.
- Note that currently it is not possible to remove a single
- attribute when the @matcher matches the whole namespace - or remove
- a namespace or attribute when the matcher matches everything. This
- is a limitation of the current implementation, but may be fixed
- in the future.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A file attribute matcher matching all attributes of
- @matcher that are not matched by @subtract</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">Matcher to subtract from</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- <parameter name="subtract" transfer-ownership="none">
- <doc xml:space="preserve">The matcher to subtract</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="g_file_attribute_matcher_to_string"
- version="2.32">
- <doc xml:space="preserve">Prints what the matcher is matching against. The format will be
- equal to the format passed to g_file_attribute_matcher_new().
- The output however, might not be identical, as the matcher may
- decide to use a different order or omit needless parts.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string describing the attributes the matcher matches
- against or %NULL if @matcher was %NULL.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="g_file_attribute_matcher_unref">
- <doc xml:space="preserve">Unreferences @matcher. If the reference count falls below 1,
- the @matcher is automatically freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="matcher" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="FileAttributeStatus"
- glib:type-name="GFileAttributeStatus"
- glib:get-type="g_file_attribute_status_get_type"
- c:type="GFileAttributeStatus">
- <doc xml:space="preserve">Used by g_file_set_attributes_from_info() when setting file attributes.</doc>
- <member name="unset"
- value="0"
- c:identifier="G_FILE_ATTRIBUTE_STATUS_UNSET"
- glib:nick="unset">
- <doc xml:space="preserve">Attribute value is unset (empty).</doc>
- </member>
- <member name="set"
- value="1"
- c:identifier="G_FILE_ATTRIBUTE_STATUS_SET"
- glib:nick="set">
- <doc xml:space="preserve">Attribute value is set.</doc>
- </member>
- <member name="error_setting"
- value="2"
- c:identifier="G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING"
- glib:nick="error-setting">
- <doc xml:space="preserve">Indicates an error in setting the value.</doc>
- </member>
- </enumeration>
- <enumeration name="FileAttributeType"
- glib:type-name="GFileAttributeType"
- glib:get-type="g_file_attribute_type_get_type"
- c:type="GFileAttributeType">
- <doc xml:space="preserve">The data types for file attributes.</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">indicates an invalid or uninitalized type.</doc>
- </member>
- <member name="string"
- value="1"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_STRING"
- glib:nick="string">
- <doc xml:space="preserve">a null terminated UTF8 string.</doc>
- </member>
- <member name="byte_string"
- value="2"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_BYTE_STRING"
- glib:nick="byte-string">
- <doc xml:space="preserve">a zero terminated string of non-zero bytes.</doc>
- </member>
- <member name="boolean"
- value="3"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_BOOLEAN"
- glib:nick="boolean">
- <doc xml:space="preserve">a boolean value.</doc>
- </member>
- <member name="uint32"
- value="4"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_UINT32"
- glib:nick="uint32">
- <doc xml:space="preserve">an unsigned 4-byte/32-bit integer.</doc>
- </member>
- <member name="int32"
- value="5"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_INT32"
- glib:nick="int32">
- <doc xml:space="preserve">a signed 4-byte/32-bit integer.</doc>
- </member>
- <member name="uint64"
- value="6"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_UINT64"
- glib:nick="uint64">
- <doc xml:space="preserve">an unsigned 8-byte/64-bit integer.</doc>
- </member>
- <member name="int64"
- value="7"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_INT64"
- glib:nick="int64">
- <doc xml:space="preserve">a signed 8-byte/64-bit integer.</doc>
- </member>
- <member name="object"
- value="8"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_OBJECT"
- glib:nick="object">
- <doc xml:space="preserve">a #GObject.</doc>
- </member>
- <member name="stringv"
- value="9"
- c:identifier="G_FILE_ATTRIBUTE_TYPE_STRINGV"
- glib:nick="stringv">
- <doc xml:space="preserve">a %NULL terminated char **. Since 2.22</doc>
- </member>
- </enumeration>
- <bitfield name="FileCopyFlags"
- glib:type-name="GFileCopyFlags"
- glib:get-type="g_file_copy_flags_get_type"
- c:type="GFileCopyFlags">
- <doc xml:space="preserve">Flags used when copying or moving files.</doc>
- <member name="none"
- value="0"
- c:identifier="G_FILE_COPY_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="overwrite"
- value="1"
- c:identifier="G_FILE_COPY_OVERWRITE"
- glib:nick="overwrite">
- <doc xml:space="preserve">Overwrite any existing files</doc>
- </member>
- <member name="backup"
- value="2"
- c:identifier="G_FILE_COPY_BACKUP"
- glib:nick="backup">
- <doc xml:space="preserve">Make a backup of any existing files.</doc>
- </member>
- <member name="nofollow_symlinks"
- value="4"
- c:identifier="G_FILE_COPY_NOFOLLOW_SYMLINKS"
- glib:nick="nofollow-symlinks">
- <doc xml:space="preserve">Don't follow symlinks.</doc>
- </member>
- <member name="all_metadata"
- value="8"
- c:identifier="G_FILE_COPY_ALL_METADATA"
- glib:nick="all-metadata">
- <doc xml:space="preserve">Copy all file metadata instead of just default set used for copy (see #GFileInfo).</doc>
- </member>
- <member name="no_fallback_for_move"
- value="16"
- c:identifier="G_FILE_COPY_NO_FALLBACK_FOR_MOVE"
- glib:nick="no-fallback-for-move">
- <doc xml:space="preserve">Don't use copy and delete fallback if native move not supported.</doc>
- </member>
- <member name="target_default_perms"
- value="32"
- c:identifier="G_FILE_COPY_TARGET_DEFAULT_PERMS"
- glib:nick="target-default-perms">
- <doc xml:space="preserve">Leaves target file with default perms, instead of setting the source file perms.</doc>
- </member>
- </bitfield>
- <bitfield name="FileCreateFlags"
- glib:type-name="GFileCreateFlags"
- glib:get-type="g_file_create_flags_get_type"
- c:type="GFileCreateFlags">
- <doc xml:space="preserve">Flags used when an operation may create a file.</doc>
- <member name="none"
- value="0"
- c:identifier="G_FILE_CREATE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="private"
- value="1"
- c:identifier="G_FILE_CREATE_PRIVATE"
- glib:nick="private">
- <doc xml:space="preserve">Create a file that can only be
- accessed by the current user.</doc>
- </member>
- <member name="replace_destination"
- value="2"
- c:identifier="G_FILE_CREATE_REPLACE_DESTINATION"
- glib:nick="replace-destination">
- <doc xml:space="preserve">Replace the destination
- as if it didn't exist before. Don't try to keep any old
- permissions, replace instead of following links. This
- is generally useful if you're doing a "copy over"
- rather than a "save new version of" replace operation.
- You can think of it as "unlink destination" before
- writing to it, although the implementation may not
- be exactly like that. Since 2.20</doc>
- </member>
- </bitfield>
- <interface name="FileDescriptorBased"
- c:symbol-prefix="file_descriptor_based"
- c:type="GFileDescriptorBased"
- glib:type-name="GFileDescriptorBased"
- glib:get-type="g_file_descriptor_based_get_type"
- glib:type-struct="FileDescriptorBasedIface">
- <doc xml:space="preserve">#GFileDescriptorBased is implemented by streams (implementations of
- #GInputStream or #GOutputStream) that are based on file descriptors.
- Note that `<gio/gfiledescriptorbased.h>` belongs to the UNIX-specific
- GIO interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
- file when using it.</doc>
- <virtual-method name="get_fd" invoker="get_fd" version="2.24">
- <doc xml:space="preserve">Gets the underlying file descriptor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="fd_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileDescriptorBased.</doc>
- <type name="FileDescriptorBased" c:type="GFileDescriptorBased*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="get_fd"
- c:identifier="g_file_descriptor_based_get_fd"
- version="2.24">
- <doc xml:space="preserve">Gets the underlying file descriptor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="fd_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileDescriptorBased.</doc>
- <type name="FileDescriptorBased" c:type="GFileDescriptorBased*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <record name="FileDescriptorBasedIface"
- c:type="GFileDescriptorBasedIface"
- glib:is-gtype-struct-for="FileDescriptorBased">
- <doc xml:space="preserve">An interface for file descriptor based io objects.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_fd">
- <callback name="get_fd">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <parameter name="fd_based" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileDescriptorBased.</doc>
- <type name="FileDescriptorBased" c:type="GFileDescriptorBased*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="FileEnumerator"
- c:symbol-prefix="file_enumerator"
- c:type="GFileEnumerator"
- parent="GObject.Object"
- glib:type-name="GFileEnumerator"
- glib:get-type="g_file_enumerator_get_type"
- glib:type-struct="FileEnumeratorClass">
- <doc xml:space="preserve">#GFileEnumerator allows you to operate on a set of #GFiles,
- returning a #GFileInfo structure for each file enumerated (e.g.
- g_file_enumerate_children() will return a #GFileEnumerator for each
- of the children within a directory).
- To get the next file's information from a #GFileEnumerator, use
- g_file_enumerator_next_file() or its asynchronous version,
- g_file_enumerator_next_files_async(). Note that the asynchronous
- version will return a list of #GFileInfos, whereas the
- synchronous will only return the next file in the enumerator.
- The ordering of returned files is unspecified for non-Unix
- platforms; for more information, see g_dir_read_name(). On Unix,
- when operating on local files, returned files will be sorted by
- inode number. Effectively you can assume that the ordering of
- returned files will be stable between successive calls (and
- applications) assuming the directory is unchanged.
- If your application needs a specific ordering, such as by name or
- modification time, you will have to implement that in your
- application code.
- To close a #GFileEnumerator, use g_file_enumerator_close(), or
- its asynchronous version, g_file_enumerator_close_async(). Once
- a #GFileEnumerator is closed, no further actions may be performed
- on it, and it should be freed with g_object_unref().</doc>
- <virtual-method name="close_async" invoker="close_async">
- <doc xml:space="preserve">Asynchronously closes the file enumerator.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned in
- g_file_enumerator_close_finish().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_finish" invoker="close_finish" throws="1">
- <doc xml:space="preserve">Finishes closing a file enumerator, started from g_file_enumerator_close_async().
- If the file enumerator was already closed when g_file_enumerator_close_async()
- was called, then this function will report %G_IO_ERROR_CLOSED in @error, and
- return %FALSE. If the file enumerator had pending operation when the close
- operation was started, then this function will report %G_IO_ERROR_PENDING, and
- return %FALSE. If @cancellable was not %NULL, then the operation may have been
- cancelled by triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %FALSE will be
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the close operation has finished successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="next_file" invoker="next_file" throws="1">
- <doc xml:space="preserve">Returns information for the next file in the enumerated object.
- Will block until the information is available. The #GFileInfo
- returned from this function will contain attributes that match the
- attribute string that was passed when the #GFileEnumerator was created.
- See the documentation of #GFileEnumerator for information about the
- order of returned files.
- On error, returns %NULL and sets @error to the error. If the
- enumerator is at the end, %NULL will be returned and @error will
- be unset.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A #GFileInfo or %NULL on error
- or end of enumerator. Free the returned object with
- g_object_unref() when no longer needed.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="next_files_async" invoker="next_files_async">
- <doc xml:space="preserve">Request information for a number of files from the enumerator asynchronously.
- When all i/o for the operation is finished the @callback will be called with
- the requested information.
- See the documentation of #GFileEnumerator for information about the
- order of returned files.
- The callback can be called with less than @num_files files in case of error
- or at the end of the enumerator. In case of a partial error the callback will
- be called with any succeeding items and no error, and on the next request the
- error will be reported. If a request is cancelled the callback will be called
- with %G_IO_ERROR_CANCELLED.
- During an async request no other sync and async calls are allowed, and will
- result in %G_IO_ERROR_PENDING errors.
- Any outstanding i/o request with higher priority (lower numerical value) will
- be executed before an outstanding request with lower priority. Default
- priority is %G_PRIORITY_DEFAULT.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="num_files" transfer-ownership="none">
- <doc xml:space="preserve">the number of file info objects to request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="next_files_finish"
- invoker="next_files_finish"
- throws="1">
- <doc xml:space="preserve">Finishes the asynchronous operation started with g_file_enumerator_next_files_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GFileInfos. You must free the list with
- g_list_free() and unref the infos with g_object_unref() when you're
- done with them.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="FileInfo"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="close" c:identifier="g_file_enumerator_close" throws="1">
- <doc xml:space="preserve">Releases all resources used by this enumerator, making the
- enumerator return %G_IO_ERROR_CLOSED on all calls.
- This will be automatically called when the last reference
- is dropped, but you might want to call this function to make
- sure resources are released as early as possible.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE on success or #FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_async" c:identifier="g_file_enumerator_close_async">
- <doc xml:space="preserve">Asynchronously closes the file enumerator.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned in
- g_file_enumerator_close_finish().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_finish"
- c:identifier="g_file_enumerator_close_finish"
- throws="1">
- <doc xml:space="preserve">Finishes closing a file enumerator, started from g_file_enumerator_close_async().
- If the file enumerator was already closed when g_file_enumerator_close_async()
- was called, then this function will report %G_IO_ERROR_CLOSED in @error, and
- return %FALSE. If the file enumerator had pending operation when the close
- operation was started, then this function will report %G_IO_ERROR_PENDING, and
- return %FALSE. If @cancellable was not %NULL, then the operation may have been
- cancelled by triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %FALSE will be
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the close operation has finished successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_child"
- c:identifier="g_file_enumerator_get_child"
- version="2.36">
- <doc xml:space="preserve">Return a new #GFile which refers to the file named by @info in the source
- directory of @enumerator. This function is primarily intended to be used
- inside loops with g_file_enumerator_next_file().
- This is a convenience method that's equivalent to:
- |[<!-- language="C" -->
- gchar *name = g_file_info_get_name (info);
- GFile *child = g_file_get_child (g_file_enumerator_get_container (enumr),
- name);
- ]|</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile for the #GFileInfo passed it.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo gotten from g_file_enumerator_next_file()
- or the async equivalents.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_container"
- c:identifier="g_file_enumerator_get_container"
- version="2.18">
- <doc xml:space="preserve">Get the #GFile container which is being enumerated.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GFile which is being enumerated.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_pending" c:identifier="g_file_enumerator_has_pending">
- <doc xml:space="preserve">Checks if the file enumerator has pending operations.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @enumerator has pending operations.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closed" c:identifier="g_file_enumerator_is_closed">
- <doc xml:space="preserve">Checks if the file enumerator has been closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @enumerator is closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="iterate"
- c:identifier="g_file_enumerator_iterate"
- version="2.44"
- throws="1">
- <doc xml:space="preserve">This is a version of g_file_enumerator_next_file() that's easier to
- use correctly from C programs. With g_file_enumerator_next_file(),
- the gboolean return value signifies "end of iteration or error", which
- requires allocation of a temporary #GError.
- In contrast, with this function, a %FALSE return from
- gs_file_enumerator_iterate() *always* means
- "error". End of iteration is signaled by @out_info or @out_child being %NULL.
- Another crucial difference is that the references for @out_info and
- @out_child are owned by @direnum (they are cached as hidden
- properties). You must not unref them in your own code. This makes
- memory management significantly easier for C code in combination
- with loops.
- Finally, this function optionally allows retrieving a #GFile as
- well.
- You must specify at least one of @out_info or @out_child.
- The code pattern for correctly using g_file_enumerator_iterate() from C
- is:
- |[
- direnum = g_file_enumerate_children (file, ...);
- while (TRUE)
- {
- GFileInfo *info;
- if (!g_file_enumerator_iterate (direnum, &info, NULL, cancellable, error))
- goto out;
- if (!info)
- break;
- ... do stuff with "info"; do not unref it! ...
- }
- out:
- g_object_unref (direnum); // Note: frees the last @info
- ]|</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="direnum" transfer-ownership="none">
- <doc xml:space="preserve">an open #GFileEnumerator</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="out_info"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Output location for the next #GFileInfo, or %NULL</doc>
- <type name="FileInfo" c:type="GFileInfo**"/>
- </parameter>
- <parameter name="out_child"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Output location for the next #GFile, or %NULL</doc>
- <type name="File" c:type="GFile**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="next_file"
- c:identifier="g_file_enumerator_next_file"
- throws="1">
- <doc xml:space="preserve">Returns information for the next file in the enumerated object.
- Will block until the information is available. The #GFileInfo
- returned from this function will contain attributes that match the
- attribute string that was passed when the #GFileEnumerator was created.
- See the documentation of #GFileEnumerator for information about the
- order of returned files.
- On error, returns %NULL and sets @error to the error. If the
- enumerator is at the end, %NULL will be returned and @error will
- be unset.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A #GFileInfo or %NULL on error
- or end of enumerator. Free the returned object with
- g_object_unref() when no longer needed.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="next_files_async"
- c:identifier="g_file_enumerator_next_files_async">
- <doc xml:space="preserve">Request information for a number of files from the enumerator asynchronously.
- When all i/o for the operation is finished the @callback will be called with
- the requested information.
- See the documentation of #GFileEnumerator for information about the
- order of returned files.
- The callback can be called with less than @num_files files in case of error
- or at the end of the enumerator. In case of a partial error the callback will
- be called with any succeeding items and no error, and on the next request the
- error will be reported. If a request is cancelled the callback will be called
- with %G_IO_ERROR_CANCELLED.
- During an async request no other sync and async calls are allowed, and will
- result in %G_IO_ERROR_PENDING errors.
- Any outstanding i/o request with higher priority (lower numerical value) will
- be executed before an outstanding request with lower priority. Default
- priority is %G_PRIORITY_DEFAULT.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="num_files" transfer-ownership="none">
- <doc xml:space="preserve">the number of file info objects to request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="next_files_finish"
- c:identifier="g_file_enumerator_next_files_finish"
- throws="1">
- <doc xml:space="preserve">Finishes the asynchronous operation started with g_file_enumerator_next_files_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GFileInfos. You must free the list with
- g_list_free() and unref the infos with g_object_unref() when you're
- done with them.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="FileInfo"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_pending" c:identifier="g_file_enumerator_set_pending">
- <doc xml:space="preserve">Sets the file enumerator as having pending operations.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </instance-parameter>
- <parameter name="pending" transfer-ownership="none">
- <doc xml:space="preserve">a boolean value.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="container"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="File"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="FileEnumeratorPrivate" c:type="GFileEnumeratorPrivate*"/>
- </field>
- </class>
- <record name="FileEnumeratorClass"
- c:type="GFileEnumeratorClass"
- glib:is-gtype-struct-for="FileEnumerator">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="next_file">
- <callback name="next_file" throws="1">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">A #GFileInfo or %NULL on error
- or end of enumerator. Free the returned object with
- g_object_unref() when no longer needed.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_fn">
- <callback name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="next_files_async">
- <callback name="next_files_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </parameter>
- <parameter name="num_files" transfer-ownership="none">
- <doc xml:space="preserve">the number of file info objects to request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="next_files_finish">
- <callback name="next_files_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GFileInfos. You must free the list with
- g_list_free() and unref the infos with g_object_unref() when you're
- done with them.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="FileInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_async">
- <callback name="close_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_finish">
- <callback name="close_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the close operation has finished successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileEnumerator.</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved7" introspectable="0">
- <callback name="_g_reserved7">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="FileEnumeratorPrivate"
- c:type="GFileEnumeratorPrivate"
- disguised="1">
- </record>
- <class name="FileIOStream"
- c:symbol-prefix="file_io_stream"
- c:type="GFileIOStream"
- parent="IOStream"
- glib:type-name="GFileIOStream"
- glib:get-type="g_file_io_stream_get_type"
- glib:type-struct="FileIOStreamClass">
- <doc xml:space="preserve">GFileIOStream provides io streams that both read and write to the same
- file handle.
- GFileIOStream implements #GSeekable, which allows the io
- stream to jump to arbitrary positions in the file and to truncate
- the file, provided the filesystem of the file supports these
- operations.
- To find the position of a file io stream, use
- g_seekable_tell().
- To find out if a file io stream supports seeking, use g_seekable_can_seek().
- To position a file io stream, use g_seekable_seek().
- To find out if a file io stream supports truncating, use
- g_seekable_can_truncate(). To truncate a file io
- stream, use g_seekable_truncate().
- The default implementation of all the #GFileIOStream operations
- and the implementation of #GSeekable just call into the same operations
- on the output stream.</doc>
- <implements name="Seekable"/>
- <virtual-method name="can_seek">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_truncate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_etag" invoker="get_etag" version="2.22">
- <doc xml:space="preserve">Gets the entity tag for the file when it has been written.
- This must be called after the stream has been written
- and closed, as the etag can change while writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the entity tag for the stream.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info"
- invoker="query_info"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Queries a file io stream for the given @attributes.
- This function blocks while querying the stream. For the asynchronous
- version of this function, see g_file_io_stream_query_info_async().
- While the stream is blocked, the stream will set the pending flag
- internally, and any other operations on the stream will fail with
- %G_IO_ERROR_PENDING.
- Can fail if the stream was already closed (with @error being set to
- %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
- set to %G_IO_ERROR_PENDING), or if querying info is not supported for
- the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). I
- all cases of failure, %NULL will be returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
- be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the @stream, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_async"
- invoker="query_info_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously queries the @stream for a #GFileInfo. When completed,
- @callback will be called with a #GAsyncResult which can be used to
- finish the operation with g_file_io_stream_query_info_finish().
- For the synchronous version of this function, see
- g_file_io_stream_query_info().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][gio-GIOScheduler] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_finish"
- invoker="query_info_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finalizes the asynchronous query started
- by g_file_io_stream_query_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileInfo for the finished query.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="seek" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="tell">
- <return-value transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="truncate_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_etag"
- c:identifier="g_file_io_stream_get_etag"
- version="2.22">
- <doc xml:space="preserve">Gets the entity tag for the file when it has been written.
- This must be called after the stream has been written
- and closed, as the etag can change while writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the entity tag for the stream.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="query_info"
- c:identifier="g_file_io_stream_query_info"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Queries a file io stream for the given @attributes.
- This function blocks while querying the stream. For the asynchronous
- version of this function, see g_file_io_stream_query_info_async().
- While the stream is blocked, the stream will set the pending flag
- internally, and any other operations on the stream will fail with
- %G_IO_ERROR_PENDING.
- Can fail if the stream was already closed (with @error being set to
- %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
- set to %G_IO_ERROR_PENDING), or if querying info is not supported for
- the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). I
- all cases of failure, %NULL will be returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
- be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the @stream, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_async"
- c:identifier="g_file_io_stream_query_info_async"
- version="2.22">
- <doc xml:space="preserve">Asynchronously queries the @stream for a #GFileInfo. When completed,
- @callback will be called with a #GAsyncResult which can be used to
- finish the operation with g_file_io_stream_query_info_finish().
- For the synchronous version of this function, see
- g_file_io_stream_query_info().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][gio-GIOScheduler] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_finish"
- c:identifier="g_file_io_stream_query_info_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finalizes the asynchronous query started
- by g_file_io_stream_query_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileInfo for the finished query.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="IOStream" c:type="GIOStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="FileIOStreamPrivate" c:type="GFileIOStreamPrivate*"/>
- </field>
- </class>
- <record name="FileIOStreamClass"
- c:type="GFileIOStreamClass"
- glib:is-gtype-struct-for="FileIOStream">
- <field name="parent_class">
- <type name="IOStreamClass" c:type="GIOStreamClass"/>
- </field>
- <field name="tell">
- <callback name="tell">
- <return-value transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_seek">
- <callback name="can_seek">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="seek">
- <callback name="seek" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_truncate">
- <callback name="can_truncate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="truncate_fn">
- <callback name="truncate_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info">
- <callback name="query_info" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the @stream, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_async">
- <callback name="query_info_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][gio-GIOScheduler] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_finish">
- <callback name="query_info_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileInfo for the finished query.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_etag">
- <callback name="get_etag">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the entity tag for the stream.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileIOStream.</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="FileIOStreamPrivate"
- c:type="GFileIOStreamPrivate"
- disguised="1">
- </record>
- <class name="FileIcon"
- c:symbol-prefix="file_icon"
- c:type="GFileIcon"
- parent="GObject.Object"
- glib:type-name="GFileIcon"
- glib:get-type="g_file_icon_get_type"
- glib:type-struct="FileIconClass">
- <doc xml:space="preserve">#GFileIcon specifies an icon by pointing to an image file
- to be used as icon.</doc>
- <implements name="Icon"/>
- <implements name="LoadableIcon"/>
- <constructor name="new" c:identifier="g_file_icon_new">
- <doc xml:space="preserve">Creates a new icon for a file.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon for the given
- @file, or %NULL on error.</doc>
- <type name="FileIcon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_file" c:identifier="g_file_icon_get_file">
- <doc xml:space="preserve">Gets the #GFile associated with the given @icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFile, or %NULL.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="FileIcon" c:type="GFileIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="file"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The file containing the icon.</doc>
- <type name="File"/>
- </property>
- </class>
- <record name="FileIconClass"
- c:type="GFileIconClass"
- disguised="1"
- glib:is-gtype-struct-for="FileIcon">
- </record>
- <record name="FileIface"
- c:type="GFileIface"
- glib:is-gtype-struct-for="File">
- <doc xml:space="preserve">An interface for writing VFS file handles.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="dup">
- <callback name="dup">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile that is a duplicate
- of the given #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="hash">
- <callback name="hash">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">0 if @file is not a valid #GFile, otherwise an
- integer that can be used as hash value for the #GFile.
- This function is intended for easily hashing a #GFile to
- add to a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="equal">
- <callback name="equal">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file1 and @file2 are equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file1" transfer-ownership="none">
- <doc xml:space="preserve">the first #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="file2" transfer-ownership="none">
- <doc xml:space="preserve">the second #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_native">
- <callback name="is_native">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @file is native</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="has_uri_scheme">
- <callback name="has_uri_scheme">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if #GFile's backend supports the
- given URI scheme, %FALSE if URI scheme is %NULL,
- not supported, or #GFile is invalid.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_uri_scheme">
- <callback name="get_uri_scheme">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the URI scheme for the given
- #GFile. The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_basename">
- <callback name="get_basename">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string containing the #GFile's base name, or
- %NULL if given #GFile is invalid. The returned string should be
- freed with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_path">
- <callback name="get_path">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string containing the #GFile's path, or %NULL
- if no such path exists. The returned string should be freed
- with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_uri">
- <callback name="get_uri">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the #GFile's URI.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_parse_name">
- <callback name="get_parse_name">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string containing the #GFile's parse name.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_parent">
- <callback name="get_parent">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GFile structure to the
- parent of the given #GFile or %NULL if there is no parent. Free
- the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="prefix_matches">
- <callback name="prefix_matches">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @files's parent, grandparent, etc is @prefix,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="prefix" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_relative_path">
- <callback name="get_relative_path">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">string with the relative path from @descendant
- to @parent, or %NULL if @descendant doesn't have @parent as
- prefix. The returned string should be freed with g_free() when
- no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="descendant" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="resolve_relative_path">
- <callback name="resolve_relative_path">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFile to the resolved path.
- %NULL if @relative_path is %NULL or if @file is invalid.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="relative_path" transfer-ownership="none">
- <doc xml:space="preserve">a given relative path string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_child_for_display_name">
- <callback name="get_child_for_display_name" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile to the specified child, or
- %NULL if the display name couldn't be converted.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">string to a possible child</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="enumerate_children">
- <callback name="enumerate_children" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileEnumerator if successful,
- %NULL on error. Free the returned object with g_object_unref().</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="enumerate_children_async">
- <callback name="enumerate_children_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="enumerate_children_finish">
- <callback name="enumerate_children_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileEnumerator or %NULL
- if an error occurred.
- Free the returned object with g_object_unref().</doc>
- <type name="FileEnumerator" c:type="GFileEnumerator*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info">
- <callback name="query_info" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the given @file, or %NULL
- on error. Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_async">
- <callback name="query_info_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_finish">
- <callback name="query_info_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo for given @file
- or %NULL on error. Free the returned object with
- g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_filesystem_info">
- <callback name="query_filesystem_info" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo or %NULL if there was an error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_filesystem_info_async">
- <callback name="query_filesystem_info_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">an attribute query string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_filesystem_info_finish">
- <callback name="query_filesystem_info_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo for given @file
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="find_enclosing_mount">
- <callback name="find_enclosing_mount" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount where the @file is located
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="find_enclosing_mount_async">
- <callback name="find_enclosing_mount_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="find_enclosing_mount_finish">
- <callback name="find_enclosing_mount_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GMount for given @file or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_display_name">
- <callback name="set_display_name" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile specifying what @file was renamed to,
- or %NULL if there was an error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_display_name_async">
- <callback name="set_display_name_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_display_name_finish">
- <callback name="set_display_name_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_settable_attributes">
- <callback name="query_settable_attributes" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList describing the settable attributes.
- When you are done with it, release it with
- g_file_attribute_info_list_unref()</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_query_settable_attributes_async" introspectable="0">
- <callback name="_query_settable_attributes_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_query_settable_attributes_finish" introspectable="0">
- <callback name="_query_settable_attributes_finish">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="query_writable_namespaces">
- <callback name="query_writable_namespaces" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileAttributeInfoList describing the writable namespaces.
- When you are done with it, release it with
- g_file_attribute_info_list_unref()</doc>
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_query_writable_namespaces_async" introspectable="0">
- <callback name="_query_writable_namespaces_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_query_writable_namespaces_finish" introspectable="0">
- <callback name="_query_writable_namespaces_finish">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="set_attribute">
- <callback name="set_attribute" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attribute was set, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a string containing the attribute's name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">The type of the attribute</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </parameter>
- <parameter name="value_p"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to the value (or the pointer
- itself if the type is a pointer type)</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_attributes_from_info">
- <callback name="set_attributes_from_info" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if there was any error, %TRUE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_attributes_async">
- <callback name="set_attributes_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileQueryInfoFlags</doc>
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">a #gpointer</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_attributes_finish">
- <callback name="set_attributes_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the attributes were set correctly, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="info"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo**"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_fn">
- <callback name="read_fn" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to read</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_async">
- <callback name="read_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_finish">
- <callback name="read_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="append_to">
- <callback name="append_to" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="append_to_async">
- <callback name="append_to_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="append_to_finish">
- <callback name="append_to_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a valid #GFileOutputStream
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">#GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create">
- <callback name="create" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream for the newly created
- file, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_async">
- <callback name="create_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_finish">
- <callback name="create_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="replace">
- <callback name="replace" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional [entity tag][gfile-etag]
- for the current #GFile, or #NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="replace_async">
- <callback name="replace_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an [entity tag][gfile-etag] for the current #GFile,
- or %NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="replace_finish">
- <callback name="replace_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileOutputStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="delete_file">
- <callback name="delete_file" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was deleted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="delete_file_async">
- <callback name="delete_file_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="delete_file_finish">
- <callback name="delete_file_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was deleted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="trash">
- <callback name="trash" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful trash, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to send to trash</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="trash_async">
- <callback name="trash_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="trash_finish">
- <callback name="trash_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful trash, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="make_directory">
- <callback name="make_directory" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful creation, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="make_directory_async">
- <callback name="make_directory_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="make_directory_finish">
- <callback name="make_directory_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful directory creation, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="make_symbolic_link">
- <callback name="make_symbolic_link" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on the creation of a new symlink, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile with the name of the symlink to create</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="symlink_value" transfer-ownership="none">
- <doc xml:space="preserve">a string with the path for the target of the new symlink</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_make_symbolic_link_async" introspectable="0">
- <callback name="_make_symbolic_link_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_make_symbolic_link_finish" introspectable="0">
- <callback name="_make_symbolic_link_finish">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="copy">
- <callback name="copy" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">destination #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="5">
- <doc xml:space="preserve">function to callback with
- progress information, or %NULL if progress information is not needed</doc>
- <type name="FileProgressCallback"
- c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="copy_async" introspectable="0">
- <callback name="copy_async" introspectable="0">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">destination #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">function to callback with progress
- information, or %NULL if progress information is not needed</doc>
- <type name="FileProgressCallback"
- c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="8">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="8">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="copy_finish">
- <callback name="copy_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="move">
- <callback name="move" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on successful move, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">#GFile pointing to the source location</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="destination" transfer-ownership="none">
- <doc xml:space="preserve">#GFile pointing to the destination location</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">set of #GFileCopyFlags</doc>
- <type name="FileCopyFlags" c:type="GFileCopyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="call"
- closure="5">
- <doc xml:space="preserve">#GFileProgressCallback
- function for updates</doc>
- <type name="FileProgressCallback"
- c:type="GFileProgressCallback"/>
- </parameter>
- <parameter name="progress_callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">gpointer to user data for
- the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_move_async" introspectable="0">
- <callback name="_move_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_move_finish" introspectable="0">
- <callback name="_move_finish">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="mount_mountable">
- <callback name="mount_mountable">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_mountable_finish">
- <callback name="mount_mountable_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount_mountable">
- <callback name="unmount_mountable">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount_mountable_finish">
- <callback name="unmount_mountable_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_mountable">
- <callback name="eject_mountable">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_mountable_finish">
- <callback name="eject_mountable_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file was ejected successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_enclosing_volume">
- <callback name="mount_enclosing_volume">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_enclosing_volume_finish">
- <callback name="mount_enclosing_volume_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred,
- this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="location" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="monitor_dir">
- <callback name="monitor_dir" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="monitor_file">
- <callback name="monitor_file" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileMonitor for the given @file,
- or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorFlags</doc>
- <type name="FileMonitorFlags" c:type="GFileMonitorFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="open_readwrite">
- <callback name="open_readwrite" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">#GFile to open</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="open_readwrite_async">
- <callback name="open_readwrite_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="open_readwrite_finish">
- <callback name="open_readwrite_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_readwrite">
- <callback name="create_readwrite" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream for the newly created
- file, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_readwrite_async">
- <callback name="create_readwrite_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_readwrite_finish">
- <callback name="create_readwrite_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="replace_readwrite">
- <callback name="replace_readwrite" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional [entity tag][gfile-etag]
- for the current #GFile, or #NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="replace_readwrite_async">
- <callback name="replace_readwrite_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="etag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an [entity tag][gfile-etag] for the current #GFile,
- or %NULL to ignore</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="make_backup" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a backup should be created</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileCreateFlags</doc>
- <type name="FileCreateFlags" c:type="GFileCreateFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="replace_readwrite_finish">
- <callback name="replace_readwrite_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileIOStream, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="FileIOStream" c:type="GFileIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start_mountable">
- <callback name="start_mountable">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="DriveStartFlags" c:type="GDriveStartFlags"/>
- </parameter>
- <parameter name="start_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation, or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start_mountable_finish">
- <callback name="start_mountable_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully. %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop_mountable">
- <callback name="stop_mountable">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop_mountable_finish">
- <callback name="stop_mountable_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="supports_thread_contexts">
- <doc xml:space="preserve">a boolean that indicates whether the #GFile implementation supports thread-default contexts. Since 2.22.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="unmount_mountable_with_operation">
- <callback name="unmount_mountable_with_operation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount_mountable_with_operation_finish">
- <callback name="unmount_mountable_with_operation_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_mountable_with_operation">
- <callback name="eject_mountable_with_operation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation,
- or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object,
- %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_mountable_with_operation_finish">
- <callback name="eject_mountable_with_operation_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @file was ejected successfully.
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="poll_mountable">
- <callback name="poll_mountable">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call
- when the request is satisfied, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="poll_mountable_finish">
- <callback name="poll_mountable_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation finished successfully. %FALSE
- otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">input #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="measure_disk_usage" introspectable="0">
- <callback name="measure_disk_usage" introspectable="0" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, with the out parameters set.
- %FALSE otherwise, with @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileMeasureFlags</doc>
- <type name="FileMeasureFlags" c:type="GFileMeasureFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">a #GFileMeasureProgressCallback</doc>
- <type name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"/>
- </parameter>
- <parameter name="progress_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="disk_usage"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of bytes of disk space used</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_dirs"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_files"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of non-directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="measure_disk_usage_async" introspectable="0">
- <callback name="measure_disk_usage_async" introspectable="0">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GFileMeasureFlags</doc>
- <type name="FileMeasureFlags" c:type="GFileMeasureFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="progress_callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">a #GFileMeasureProgressCallback</doc>
- <type name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"/>
- </parameter>
- <parameter name="progress_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @progress_callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="measure_disk_usage_finish">
- <callback name="measure_disk_usage_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, with the out parameters set.
- %FALSE otherwise, with @error set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="disk_usage"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of bytes of disk space used</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_dirs"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- <parameter name="num_files"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the number of non-directories encountered</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="FileInfo"
- c:symbol-prefix="file_info"
- c:type="GFileInfo"
- parent="GObject.Object"
- glib:type-name="GFileInfo"
- glib:get-type="g_file_info_get_type"
- glib:type-struct="FileInfoClass">
- <doc xml:space="preserve">Functionality for manipulating basic metadata for files. #GFileInfo
- implements methods for getting information that all files should
- contain, and allows for manipulation of extended attributes.
- See [GFileAttribute][gio-GFileAttribute] for more information on how
- GIO handles file attributes.
- To obtain a #GFileInfo for a #GFile, use g_file_query_info() (or its
- async variant). To obtain a #GFileInfo for a file input or output
- stream, use g_file_input_stream_query_info() or
- g_file_output_stream_query_info() (or their async variants).
- To change the actual attributes of a file, you should then set the
- attribute in the #GFileInfo and call g_file_set_attributes_from_info()
- or g_file_set_attributes_async() on a GFile.
- However, not all attributes can be changed in the file. For instance,
- the actual size of a file cannot be changed via g_file_info_set_size().
- You may call g_file_query_settable_attributes() and
- g_file_query_writable_namespaces() to discover the settable attributes
- of a particular file at runtime.
- #GFileAttributeMatcher allows for searching through a #GFileInfo for
- attributes.</doc>
- <constructor name="new" c:identifier="g_file_info_new">
- <doc xml:space="preserve">Creates a new file info structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- </constructor>
- <method name="clear_status" c:identifier="g_file_info_clear_status">
- <doc xml:space="preserve">Clears the status information from @info.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="copy_into" c:identifier="g_file_info_copy_into">
- <doc xml:space="preserve">First clears all of the [GFileAttribute][gio-GFileAttribute] of @dest_info,
- and then copies all of the file attributes from @src_info to @dest_info.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="src_info" transfer-ownership="none">
- <doc xml:space="preserve">source to copy attributes from.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="dest_info" transfer-ownership="none">
- <doc xml:space="preserve">destination to copy attributes to.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- </parameters>
- </method>
- <method name="dup" c:identifier="g_file_info_dup">
- <doc xml:space="preserve">Duplicates a file info structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a duplicate #GFileInfo of @other.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="other" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_attribute_as_string"
- c:identifier="g_file_info_get_attribute_as_string">
- <doc xml:space="preserve">Gets the value of a attribute, formated as a string.
- This escapes things as needed to make the string valid
- utf8.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a UTF-8 string associated with the given @attribute.
- When you're done with the string it must be freed with g_free().</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_boolean"
- c:identifier="g_file_info_get_attribute_boolean">
- <doc xml:space="preserve">Gets the value of a boolean attribute. If the attribute does not
- contain a boolean value, %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the boolean value contained within the attribute.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_byte_string"
- c:identifier="g_file_info_get_attribute_byte_string">
- <doc xml:space="preserve">Gets the value of a byte string attribute. If the attribute does
- not contain a byte string, %NULL will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the contents of the @attribute value as a byte string, or
- %NULL otherwise.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_data"
- c:identifier="g_file_info_get_attribute_data">
- <doc xml:space="preserve">Gets the attribute type, value and status for an attribute key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @info has an attribute named @attribute,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for the attribute type, or %NULL</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType*"/>
- </parameter>
- <parameter name="value_pp"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for the
- attribute value, or %NULL; the attribute value will not be %NULL</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="status"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for the attribute status, or %NULL</doc>
- <type name="FileAttributeStatus" c:type="GFileAttributeStatus*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_int32"
- c:identifier="g_file_info_get_attribute_int32">
- <doc xml:space="preserve">Gets a signed 32-bit integer contained within the attribute. If the
- attribute does not contain a signed 32-bit integer, or is invalid,
- 0 will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a signed 32-bit integer from the attribute.</doc>
- <type name="gint32" c:type="gint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_int64"
- c:identifier="g_file_info_get_attribute_int64">
- <doc xml:space="preserve">Gets a signed 64-bit integer contained within the attribute. If the
- attribute does not contain an signed 64-bit integer, or is invalid,
- 0 will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a signed 64-bit integer from the attribute.</doc>
- <type name="gint64" c:type="gint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_object"
- c:identifier="g_file_info_get_attribute_object">
- <doc xml:space="preserve">Gets the value of a #GObject attribute. If the attribute does
- not contain a #GObject, %NULL will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GObject associated with the given @attribute, or
- %NULL otherwise.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_status"
- c:identifier="g_file_info_get_attribute_status">
- <doc xml:space="preserve">Gets the attribute status for an attribute key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeStatus for the given @attribute, or
- %G_FILE_ATTRIBUTE_STATUS_UNSET if the key is invalid.</doc>
- <type name="FileAttributeStatus" c:type="GFileAttributeStatus"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_string"
- c:identifier="g_file_info_get_attribute_string">
- <doc xml:space="preserve">Gets the value of a string attribute. If the attribute does
- not contain a string, %NULL will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the contents of the @attribute value as a UTF-8 string, or
- %NULL otherwise.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_stringv"
- c:identifier="g_file_info_get_attribute_stringv"
- version="2.22">
- <doc xml:space="preserve">Gets the value of a stringv attribute. If the attribute does
- not contain a stringv, %NULL will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the contents of the @attribute value as a stringv, or
- %NULL otherwise. Do not free. These returned strings are UTF-8.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_type"
- c:identifier="g_file_info_get_attribute_type">
- <doc xml:space="preserve">Gets the attribute type for an attribute key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeType for the given @attribute, or
- %G_FILE_ATTRIBUTE_TYPE_INVALID if the key is not set.</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_uint32"
- c:identifier="g_file_info_get_attribute_uint32">
- <doc xml:space="preserve">Gets an unsigned 32-bit integer contained within the attribute. If the
- attribute does not contain an unsigned 32-bit integer, or is invalid,
- 0 will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 32-bit integer from the attribute.</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_uint64"
- c:identifier="g_file_info_get_attribute_uint64">
- <doc xml:space="preserve">Gets a unsigned 64-bit integer contained within the attribute. If the
- attribute does not contain an unsigned 64-bit integer, or is invalid,
- 0 will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a unsigned 64-bit integer from the attribute.</doc>
- <type name="guint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_content_type"
- c:identifier="g_file_info_get_content_type">
- <doc xml:space="preserve">Gets the file's content type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file's content type.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_deletion_date"
- c:identifier="g_file_info_get_deletion_date"
- version="2.36">
- <doc xml:space="preserve">Returns the #GDateTime representing the deletion date of the file, as
- available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
- G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, %NULL is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDateTime, or %NULL.</doc>
- <type name="GLib.DateTime" c:type="GDateTime*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_display_name"
- c:identifier="g_file_info_get_display_name">
- <doc xml:space="preserve">Gets a display name for a file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the display name.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_edit_name" c:identifier="g_file_info_get_edit_name">
- <doc xml:space="preserve">Gets the edit name for a file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the edit name.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_etag" c:identifier="g_file_info_get_etag">
- <doc xml:space="preserve">Gets the [entity tag][gfile-etag] for a given
- #GFileInfo. See %G_FILE_ATTRIBUTE_ETAG_VALUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the value of the "etag:value" attribute.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_file_type" c:identifier="g_file_info_get_file_type">
- <doc xml:space="preserve">Gets a file's type (whether it is a regular file, symlink, etc).
- This is different from the file's content type, see g_file_info_get_content_type().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFileType for the given file.</doc>
- <type name="FileType" c:type="GFileType"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_icon" c:identifier="g_file_info_get_icon">
- <doc xml:space="preserve">Gets the icon for a file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GIcon for the given @info.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_backup" c:identifier="g_file_info_get_is_backup">
- <doc xml:space="preserve">Checks if a file is a backup file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if file is a backup file, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_hidden" c:identifier="g_file_info_get_is_hidden">
- <doc xml:space="preserve">Checks if a file is hidden.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file is a hidden file, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_symlink" c:identifier="g_file_info_get_is_symlink">
- <doc xml:space="preserve">Checks if a file is a symlink.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the given @info is a symlink.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_modification_time"
- c:identifier="g_file_info_get_modification_time">
- <doc xml:space="preserve">Gets the modification time of the current @info and sets it
- in @result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="result"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">a #GTimeVal.</doc>
- <type name="GLib.TimeVal" c:type="GTimeVal*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="g_file_info_get_name">
- <doc xml:space="preserve">Gets the name for a file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file name.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_size" c:identifier="g_file_info_get_size">
- <doc xml:space="preserve">Gets the file's size.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #goffset containing the file's size.</doc>
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sort_order" c:identifier="g_file_info_get_sort_order">
- <doc xml:space="preserve">Gets the value of the sort_order attribute from the #GFileInfo.
- See %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gint32 containing the value of the "standard::sort_order" attribute.</doc>
- <type name="gint32" c:type="gint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_symbolic_icon"
- c:identifier="g_file_info_get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the symbolic icon for a file.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GIcon for the given @info.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_symlink_target"
- c:identifier="g_file_info_get_symlink_target">
- <doc xml:space="preserve">Gets the symlink target for a given #GFileInfo.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the symlink target.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_attribute" c:identifier="g_file_info_has_attribute">
- <doc xml:space="preserve">Checks if a file info structure has an attribute named @attribute.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @Ginfo has an attribute named @attribute,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_namespace"
- c:identifier="g_file_info_has_namespace"
- version="2.22">
- <doc xml:space="preserve">Checks if a file info structure has an attribute in the
- specified @name_space.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @Ginfo has an attribute in @name_space,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="name_space" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute namespace.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_attributes"
- c:identifier="g_file_info_list_attributes">
- <doc xml:space="preserve">Lists the file info structure's attributes.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a
- null-terminated array of strings of all of the possible attribute
- types for the given @name_space, or %NULL on error.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="name_space"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a file attribute key's namespace, or %NULL to list
- all attributes.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_attribute"
- c:identifier="g_file_info_remove_attribute">
- <doc xml:space="preserve">Removes all cases of @attribute from @info if it exists.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute" c:identifier="g_file_info_set_attribute">
- <doc xml:space="preserve">Sets the @attribute to contain the given value, if possible. To unset the
- attribute, use %G_ATTRIBUTE_TYPE_INVALID for @type.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeType</doc>
- <type name="FileAttributeType" c:type="GFileAttributeType"/>
- </parameter>
- <parameter name="value_p" transfer-ownership="none">
- <doc xml:space="preserve">pointer to the value</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_boolean"
- c:identifier="g_file_info_set_attribute_boolean">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">a boolean value.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_byte_string"
- c:identifier="g_file_info_set_attribute_byte_string">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">a byte string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_int32"
- c:identifier="g_file_info_set_attribute_int32">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">a signed 32-bit integer</doc>
- <type name="gint32" c:type="gint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_int64"
- c:identifier="g_file_info_set_attribute_int64">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">attribute name to set.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">int64 value to set attribute to.</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_mask"
- c:identifier="g_file_info_set_attribute_mask">
- <doc xml:space="preserve">Sets @mask on @info to match specific attribute types.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeMatcher.</doc>
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_object"
- c:identifier="g_file_info_set_attribute_object">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_status"
- c:identifier="g_file_info_set_attribute_status"
- version="2.22">
- <doc xml:space="preserve">Sets the attribute status for an attribute key. This is only
- needed by external code that implement g_file_set_attributes_from_info()
- or similar functions.
- The attribute must exist in @info for this to work. Otherwise %FALSE
- is returned and @info is unchanged.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the status was changed, %FALSE if the key was not set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="status" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileAttributeStatus</doc>
- <type name="FileAttributeStatus" c:type="GFileAttributeStatus"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_string"
- c:identifier="g_file_info_set_attribute_string">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">a UTF-8 string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_stringv"
- c:identifier="g_file_info_set_attribute_stringv">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.
- Sinze: 2.22</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">a %NULL terminated array of UTF-8 strings.</doc>
- <array zero-terminated="0" c:type="char**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_uint32"
- c:identifier="g_file_info_set_attribute_uint32">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 32-bit integer.</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_uint64"
- c:identifier="g_file_info_set_attribute_uint64">
- <doc xml:space="preserve">Sets the @attribute to contain the given @attr_value,
- if possible.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute key.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="attr_value" transfer-ownership="none">
- <doc xml:space="preserve">an unsigned 64-bit integer.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_content_type"
- c:identifier="g_file_info_set_content_type">
- <doc xml:space="preserve">Sets the content type attribute for a given #GFileInfo.
- See %G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a content type. See [GContentType][gio-GContentType]</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_display_name"
- c:identifier="g_file_info_set_display_name">
- <doc xml:space="preserve">Sets the display name for the current #GFileInfo.
- See %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="display_name" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a display name.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_edit_name" c:identifier="g_file_info_set_edit_name">
- <doc xml:space="preserve">Sets the edit name for the current file.
- See %G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="edit_name" transfer-ownership="none">
- <doc xml:space="preserve">a string containing an edit name.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_file_type" c:identifier="g_file_info_set_file_type">
- <doc xml:space="preserve">Sets the file type in a #GFileInfo to @type.
- See %G_FILE_ATTRIBUTE_STANDARD_TYPE.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileType.</doc>
- <type name="FileType" c:type="GFileType"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_icon" c:identifier="g_file_info_set_icon">
- <doc xml:space="preserve">Sets the icon for a given #GFileInfo.
- See %G_FILE_ATTRIBUTE_STANDARD_ICON.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_is_hidden" c:identifier="g_file_info_set_is_hidden">
- <doc xml:space="preserve">Sets the "is_hidden" attribute in a #GFileInfo according to @is_hidden.
- See %G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="is_hidden" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_is_symlink" c:identifier="g_file_info_set_is_symlink">
- <doc xml:space="preserve">Sets the "is_symlink" attribute in a #GFileInfo according to @is_symlink.
- See %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="is_symlink" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_modification_time"
- c:identifier="g_file_info_set_modification_time">
- <doc xml:space="preserve">Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED attribute in the file
- info to the given time value.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="mtime" transfer-ownership="none">
- <doc xml:space="preserve">a #GTimeVal.</doc>
- <type name="GLib.TimeVal" c:type="GTimeVal*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_name" c:identifier="g_file_info_set_name">
- <doc xml:space="preserve">Sets the name attribute for the current #GFileInfo.
- See %G_FILE_ATTRIBUTE_STANDARD_NAME.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a name.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_size" c:identifier="g_file_info_set_size">
- <doc xml:space="preserve">Sets the %G_FILE_ATTRIBUTE_STANDARD_SIZE attribute in the file info
- to the given size.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset containing the file's size.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_sort_order" c:identifier="g_file_info_set_sort_order">
- <doc xml:space="preserve">Sets the sort order attribute in the file info structure. See
- %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="sort_order" transfer-ownership="none">
- <doc xml:space="preserve">a sort order integer.</doc>
- <type name="gint32" c:type="gint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_symbolic_icon"
- c:identifier="g_file_info_set_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Sets the symbolic icon for a given #GFileInfo.
- See %G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_symlink_target"
- c:identifier="g_file_info_set_symlink_target">
- <doc xml:space="preserve">Sets the %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET attribute in the file info
- to the given symlink target.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- <parameter name="symlink_target" transfer-ownership="none">
- <doc xml:space="preserve">a static string containing a path to a symlink target.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unset_attribute_mask"
- c:identifier="g_file_info_unset_attribute_mask">
- <doc xml:space="preserve">Unsets a mask set by g_file_info_set_attribute_mask(), if one
- is set.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">#GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </class>
- <record name="FileInfoClass"
- c:type="GFileInfoClass"
- disguised="1"
- glib:is-gtype-struct-for="FileInfo">
- </record>
- <class name="FileInputStream"
- c:symbol-prefix="file_input_stream"
- c:type="GFileInputStream"
- parent="InputStream"
- glib:type-name="GFileInputStream"
- glib:get-type="g_file_input_stream_get_type"
- glib:type-struct="FileInputStreamClass">
- <doc xml:space="preserve">GFileInputStream provides input streams that take their
- content from a file.
- GFileInputStream implements #GSeekable, which allows the input
- stream to jump to arbitrary positions in the file, provided the
- filesystem of the file allows it. To find the position of a file
- input stream, use g_seekable_tell(). To find out if a file input
- stream supports seeking, use g_seekable_can_seek().
- To position a file input stream, use g_seekable_seek().</doc>
- <implements name="Seekable"/>
- <virtual-method name="can_seek">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info" invoker="query_info" throws="1">
- <doc xml:space="preserve">Queries a file input stream the given @attributes. This function blocks
- while querying the stream. For the asynchronous (non-blocking) version
- of this function, see g_file_input_stream_query_info_async(). While the
- stream is blocked, the stream will set the pending flag internally, and
- any other operations on the stream will fail with %G_IO_ERROR_PENDING.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_async" invoker="query_info_async">
- <doc xml:space="preserve">Queries the stream information asynchronously.
- When the operation is finished @callback will be called.
- You can then call g_file_input_stream_query_info_finish()
- to get the result of the operation.
- For the synchronous version of this function,
- see g_file_input_stream_query_info().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_finish"
- invoker="query_info_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous info query operation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="seek" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="tell">
- <return-value transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="query_info"
- c:identifier="g_file_input_stream_query_info"
- throws="1">
- <doc xml:space="preserve">Queries a file input stream the given @attributes. This function blocks
- while querying the stream. For the asynchronous (non-blocking) version
- of this function, see g_file_input_stream_query_info_async(). While the
- stream is blocked, the stream will set the pending flag internally, and
- any other operations on the stream will fail with %G_IO_ERROR_PENDING.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_async"
- c:identifier="g_file_input_stream_query_info_async">
- <doc xml:space="preserve">Queries the stream information asynchronously.
- When the operation is finished @callback will be called.
- You can then call g_file_input_stream_query_info_finish()
- to get the result of the operation.
- For the synchronous version of this function,
- see g_file_input_stream_query_info().
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_finish"
- c:identifier="g_file_input_stream_query_info_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous info query operation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="InputStream" c:type="GInputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="FileInputStreamPrivate" c:type="GFileInputStreamPrivate*"/>
- </field>
- </class>
- <record name="FileInputStreamClass"
- c:type="GFileInputStreamClass"
- glib:is-gtype-struct-for="FileInputStream">
- <field name="parent_class">
- <type name="InputStreamClass" c:type="GInputStreamClass"/>
- </field>
- <field name="tell">
- <callback name="tell">
- <return-value transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_seek">
- <callback name="can_seek">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="seek">
- <callback name="seek" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info">
- <callback name="query_info" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_async">
- <callback name="query_info_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_finish">
- <callback name="query_info_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GFileInfo.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInputStream.</doc>
- <type name="FileInputStream" c:type="GFileInputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="FileInputStreamPrivate"
- c:type="GFileInputStreamPrivate"
- disguised="1">
- </record>
- <bitfield name="FileMeasureFlags"
- version="2.38"
- glib:type-name="GFileMeasureFlags"
- glib:get-type="g_file_measure_flags_get_type"
- c:type="GFileMeasureFlags">
- <doc xml:space="preserve">Flags that can be used with g_file_measure_disk_usage().</doc>
- <member name="none"
- value="0"
- c:identifier="G_FILE_MEASURE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="report_any_error"
- value="2"
- c:identifier="G_FILE_MEASURE_REPORT_ANY_ERROR"
- glib:nick="report-any-error">
- <doc xml:space="preserve">Report any error encountered
- while traversing the directory tree. Normally errors are only
- reported for the toplevel file.</doc>
- </member>
- <member name="apparent_size"
- value="4"
- c:identifier="G_FILE_MEASURE_APPARENT_SIZE"
- glib:nick="apparent-size">
- <doc xml:space="preserve">Tally usage based on apparent file
- sizes. Normally, the block-size is used, if available, as this is a
- more accurate representation of disk space used.
- Compare with `du --apparent-size`.</doc>
- </member>
- <member name="no_xdev"
- value="8"
- c:identifier="G_FILE_MEASURE_NO_XDEV"
- glib:nick="no-xdev">
- <doc xml:space="preserve">Do not cross mount point boundaries.
- Compare with `du -x`.</doc>
- </member>
- </bitfield>
- <callback name="FileMeasureProgressCallback"
- c:type="GFileMeasureProgressCallback"
- version="2.38">
- <doc xml:space="preserve">This callback type is used by g_file_measure_disk_usage() to make
- periodic progress reports when measuring the amount of disk spaced
- used by a directory.
- These calls are made on a best-effort basis and not all types of
- #GFile will support them. At the minimum, however, one call will
- always be made immediately.
- In the case that there is no support, @reporting will be set to
- %FALSE (and the other values undefined) and no further calls will be
- made. Otherwise, the @reporting will be %TRUE and the other values
- all-zeros during the first (immediate) call. In this way, you can
- know which type of progress UI to show without a delay.
- For g_file_measure_disk_usage() the callback is made directly. For
- g_file_measure_disk_usage_async() the callback is made via the
- default main context of the calling thread (ie: the same way that the
- final async result would be reported).
- @current_size is in the same units as requested by the operation (see
- %G_FILE_DISK_USAGE_APPARENT_SIZE).
- The frequency of the updates is implementation defined, but is
- ideally about once every 200ms.
- The last progress callback may or may not be equal to the final
- result. Always check the async result to get the final value.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="reporting" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if more reports will come</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="current_size" transfer-ownership="none">
- <doc xml:space="preserve">the current cumulative size measurement</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num_dirs" transfer-ownership="none">
- <doc xml:space="preserve">the number of directories visited so far</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="num_files" transfer-ownership="none">
- <doc xml:space="preserve">the number of non-directory files encountered</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data passed to the original request for this callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="FileMonitor"
- c:symbol-prefix="file_monitor"
- c:type="GFileMonitor"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GFileMonitor"
- glib:get-type="g_file_monitor_get_type"
- glib:type-struct="FileMonitorClass">
- <doc xml:space="preserve">Monitors a file or directory for changes.
- To obtain a #GFileMonitor for a file or directory, use
- g_file_monitor(), g_file_monitor_file(), or
- g_file_monitor_directory().
- To get informed about changes to the file or directory you are
- monitoring, connect to the #GFileMonitor::changed signal. The
- signal will be emitted in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread that the monitor was created in
- (though if the global default main context is blocked, this may
- cause notifications to be blocked even if the thread-default
- context is still running).</doc>
- <virtual-method name="cancel" invoker="cancel">
- <doc xml:space="preserve">Cancels a file monitor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">always %TRUE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitor.</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </instance-parameter>
- <parameter name="file" transfer-ownership="none">
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="other_file" transfer-ownership="none">
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="event_type" transfer-ownership="none">
- <type name="FileMonitorEvent" c:type="GFileMonitorEvent"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="cancel" c:identifier="g_file_monitor_cancel">
- <doc xml:space="preserve">Cancels a file monitor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">always %TRUE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitor.</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="emit_event" c:identifier="g_file_monitor_emit_event">
- <doc xml:space="preserve">Emits the #GFileMonitor::changed signal if a change
- has taken place. Should be called from file monitor
- implementations only.
- Implementations are responsible to call this method from the
- [thread-default main context][g-main-context-push-thread-default] of the
- thread that the monitor was created in.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitor.</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </instance-parameter>
- <parameter name="child" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="other_file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="event_type" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GFileMonitorEvent flags.</doc>
- <type name="FileMonitorEvent" c:type="GFileMonitorEvent"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_cancelled" c:identifier="g_file_monitor_is_cancelled">
- <doc xml:space="preserve">Returns whether the monitor is canceled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if monitor is canceled. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitor</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_rate_limit"
- c:identifier="g_file_monitor_set_rate_limit">
- <doc xml:space="preserve">Sets the rate limit to which the @monitor will report
- consecutive change events to the same file.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitor.</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </instance-parameter>
- <parameter name="limit_msecs" transfer-ownership="none">
- <doc xml:space="preserve">a non-negative integer with the limit in milliseconds
- to poll for changes</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <property name="cancelled" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="rate-limit" writable="1" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="FileMonitorPrivate" c:type="GFileMonitorPrivate*"/>
- </field>
- <glib:signal name="changed" when="last">
- <doc xml:space="preserve">Emitted when @file has been changed.
- If using %G_FILE_MONITOR_WATCH_RENAMES on a directory monitor, and
- the information is available (and if supported by the backend),
- @event_type may be %G_FILE_MONITOR_EVENT_RENAMED,
- %G_FILE_MONITOR_EVENT_MOVED_IN or %G_FILE_MONITOR_EVENT_MOVED_OUT.
- In all cases @file will be a child of the monitored directory. For
- renames, @file will be the old name and @other_file is the new
- name. For "moved in" events, @file is the name of the file that
- appeared and @other_file is the old name that it was moved from (in
- another directory). For "moved out" events, @file is the name of
- the file that used to be in this directory and @other_file is the
- name of the file at its new location.
- It makes sense to treat %G_FILE_MONITOR_EVENT_MOVED_IN as
- equivalent to %G_FILE_MONITOR_EVENT_CREATED and
- %G_FILE_MONITOR_EVENT_MOVED_OUT as equivalent to
- %G_FILE_MONITOR_EVENT_DELETED, with extra information.
- %G_FILE_MONITOR_EVENT_RENAMED is equivalent to a delete/create
- pair. This is exactly how the events will be reported in the case
- that the %G_FILE_MONITOR_WATCH_RENAMES flag is not in use.
- If using the deprecated flag %G_FILE_MONITOR_SEND_MOVED flag and @event_type is
- #G_FILE_MONITOR_EVENT_MOVED, @file will be set to a #GFile containing the
- old path, and @other_file will be set to a #GFile containing the new path.
- In all the other cases, @other_file will be set to #NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">a #GFile.</doc>
- <type name="File"/>
- </parameter>
- <parameter name="other_file"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GFile or #NULL.</doc>
- <type name="File"/>
- </parameter>
- <parameter name="event_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitorEvent.</doc>
- <type name="FileMonitorEvent"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="FileMonitorClass"
- c:type="GFileMonitorClass"
- glib:is-gtype-struct-for="FileMonitor">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="changed">
- <callback name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="monitor" transfer-ownership="none">
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="other_file" transfer-ownership="none">
- <type name="File" c:type="GFile*"/>
- </parameter>
- <parameter name="event_type" transfer-ownership="none">
- <type name="FileMonitorEvent" c:type="GFileMonitorEvent"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="cancel">
- <callback name="cancel">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">always %TRUE</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileMonitor.</doc>
- <type name="FileMonitor" c:type="GFileMonitor*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <enumeration name="FileMonitorEvent"
- glib:type-name="GFileMonitorEvent"
- glib:get-type="g_file_monitor_event_get_type"
- c:type="GFileMonitorEvent">
- <doc xml:space="preserve">Specifies what type of event a monitor event is.</doc>
- <member name="changed"
- value="0"
- c:identifier="G_FILE_MONITOR_EVENT_CHANGED"
- glib:nick="changed">
- <doc xml:space="preserve">a file changed.</doc>
- </member>
- <member name="changes_done_hint"
- value="1"
- c:identifier="G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT"
- glib:nick="changes-done-hint">
- <doc xml:space="preserve">a hint that this was probably the last change in a set of changes.</doc>
- </member>
- <member name="deleted"
- value="2"
- c:identifier="G_FILE_MONITOR_EVENT_DELETED"
- glib:nick="deleted">
- <doc xml:space="preserve">a file was deleted.</doc>
- </member>
- <member name="created"
- value="3"
- c:identifier="G_FILE_MONITOR_EVENT_CREATED"
- glib:nick="created">
- <doc xml:space="preserve">a file was created.</doc>
- </member>
- <member name="attribute_changed"
- value="4"
- c:identifier="G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED"
- glib:nick="attribute-changed">
- <doc xml:space="preserve">a file attribute was changed.</doc>
- </member>
- <member name="pre_unmount"
- value="5"
- c:identifier="G_FILE_MONITOR_EVENT_PRE_UNMOUNT"
- glib:nick="pre-unmount">
- <doc xml:space="preserve">the file location will soon be unmounted.</doc>
- </member>
- <member name="unmounted"
- value="6"
- c:identifier="G_FILE_MONITOR_EVENT_UNMOUNTED"
- glib:nick="unmounted">
- <doc xml:space="preserve">the file location was unmounted.</doc>
- </member>
- <member name="moved"
- value="7"
- c:identifier="G_FILE_MONITOR_EVENT_MOVED"
- glib:nick="moved">
- <doc xml:space="preserve">the file was moved -- only sent if the
- (deprecated) %G_FILE_MONITOR_SEND_MOVED flag is set</doc>
- </member>
- <member name="renamed"
- value="8"
- c:identifier="G_FILE_MONITOR_EVENT_RENAMED"
- glib:nick="renamed">
- <doc xml:space="preserve">the file was renamed within the
- current directory -- only sent if the %G_FILE_MONITOR_WATCH_MOVES
- flag is set. Since: 2.44.</doc>
- </member>
- <member name="moved_in"
- value="9"
- c:identifier="G_FILE_MONITOR_EVENT_MOVED_IN"
- glib:nick="moved-in">
- <doc xml:space="preserve">the file was moved into the
- monitored directory from another location -- only sent if the
- %G_FILE_MONITOR_WATCH_MOVES flag is set. Since: 2.44.</doc>
- </member>
- <member name="moved_out"
- value="10"
- c:identifier="G_FILE_MONITOR_EVENT_MOVED_OUT"
- glib:nick="moved-out">
- <doc xml:space="preserve">the file was moved out of the
- monitored directory to another location -- only sent if the
- %G_FILE_MONITOR_WATCH_MOVES flag is set. Since: 2.44</doc>
- </member>
- </enumeration>
- <bitfield name="FileMonitorFlags"
- glib:type-name="GFileMonitorFlags"
- glib:get-type="g_file_monitor_flags_get_type"
- c:type="GFileMonitorFlags">
- <doc xml:space="preserve">Flags used to set what a #GFileMonitor will watch for.</doc>
- <member name="none"
- value="0"
- c:identifier="G_FILE_MONITOR_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="watch_mounts"
- value="1"
- c:identifier="G_FILE_MONITOR_WATCH_MOUNTS"
- glib:nick="watch-mounts">
- <doc xml:space="preserve">Watch for mount events.</doc>
- </member>
- <member name="send_moved"
- value="2"
- c:identifier="G_FILE_MONITOR_SEND_MOVED"
- glib:nick="send-moved">
- <doc xml:space="preserve">Pair DELETED and CREATED events caused
- by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED
- event instead (NB: not supported on all backends; the default
- behaviour -without specifying this flag- is to send single DELETED
- and CREATED events). Deprecated since 2.44: use
- %G_FILE_MONITOR_WATCH_MOVES instead.</doc>
- </member>
- <member name="watch_hard_links"
- value="4"
- c:identifier="G_FILE_MONITOR_WATCH_HARD_LINKS"
- glib:nick="watch-hard-links">
- <doc xml:space="preserve">Watch for changes to the file made
- via another hard link. Since 2.36.</doc>
- </member>
- <member name="watch_moves"
- value="8"
- c:identifier="G_FILE_MONITOR_WATCH_MOVES"
- glib:nick="watch-moves">
- <doc xml:space="preserve">Watch for rename operations on a
- monitored directory. This causes %G_FILE_MONITOR_EVENT_RENAMED,
- %G_FILE_MONITOR_EVENT_MOVED_IN and %G_FILE_MONITOR_EVENT_MOVED_OUT
- events to be emitted when possible. Since: 2.44.</doc>
- </member>
- </bitfield>
- <record name="FileMonitorPrivate"
- c:type="GFileMonitorPrivate"
- disguised="1">
- </record>
- <class name="FileOutputStream"
- c:symbol-prefix="file_output_stream"
- c:type="GFileOutputStream"
- parent="OutputStream"
- glib:type-name="GFileOutputStream"
- glib:get-type="g_file_output_stream_get_type"
- glib:type-struct="FileOutputStreamClass">
- <doc xml:space="preserve">GFileOutputStream provides output streams that write their
- content to a file.
- GFileOutputStream implements #GSeekable, which allows the output
- stream to jump to arbitrary positions in the file and to truncate
- the file, provided the filesystem of the file supports these
- operations.
- To find the position of a file output stream, use g_seekable_tell().
- To find out if a file output stream supports seeking, use
- g_seekable_can_seek().To position a file output stream, use
- g_seekable_seek(). To find out if a file output stream supports
- truncating, use g_seekable_can_truncate(). To truncate a file output
- stream, use g_seekable_truncate().</doc>
- <implements name="Seekable"/>
- <virtual-method name="can_seek">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_truncate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_etag" invoker="get_etag">
- <doc xml:space="preserve">Gets the entity tag for the file when it has been written.
- This must be called after the stream has been written
- and closed, as the etag can change while writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the entity tag for the stream.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info" invoker="query_info" throws="1">
- <doc xml:space="preserve">Queries a file output stream for the given @attributes.
- This function blocks while querying the stream. For the asynchronous
- version of this function, see g_file_output_stream_query_info_async().
- While the stream is blocked, the stream will set the pending flag
- internally, and any other operations on the stream will fail with
- %G_IO_ERROR_PENDING.
- Can fail if the stream was already closed (with @error being set to
- %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
- set to %G_IO_ERROR_PENDING), or if querying info is not supported for
- the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). In
- all cases of failure, %NULL will be returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
- be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the @stream, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_async" invoker="query_info_async">
- <doc xml:space="preserve">Asynchronously queries the @stream for a #GFileInfo. When completed,
- @callback will be called with a #GAsyncResult which can be used to
- finish the operation with g_file_output_stream_query_info_finish().
- For the synchronous version of this function, see
- g_file_output_stream_query_info().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][gio-GIOScheduler] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="query_info_finish"
- invoker="query_info_finish"
- throws="1">
- <doc xml:space="preserve">Finalizes the asynchronous query started
- by g_file_output_stream_query_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileInfo for the finished query.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="seek" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="tell">
- <return-value transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="truncate_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_etag" c:identifier="g_file_output_stream_get_etag">
- <doc xml:space="preserve">Gets the entity tag for the file when it has been written.
- This must be called after the stream has been written
- and closed, as the etag can change while writing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the entity tag for the stream.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="query_info"
- c:identifier="g_file_output_stream_query_info"
- throws="1">
- <doc xml:space="preserve">Queries a file output stream for the given @attributes.
- This function blocks while querying the stream. For the asynchronous
- version of this function, see g_file_output_stream_query_info_async().
- While the stream is blocked, the stream will set the pending flag
- internally, and any other operations on the stream will fail with
- %G_IO_ERROR_PENDING.
- Can fail if the stream was already closed (with @error being set to
- %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
- set to %G_IO_ERROR_PENDING), or if querying info is not supported for
- the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). In
- all cases of failure, %NULL will be returned.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
- be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the @stream, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_async"
- c:identifier="g_file_output_stream_query_info_async">
- <doc xml:space="preserve">Asynchronously queries the @stream for a #GFileInfo. When completed,
- @callback will be called with a #GAsyncResult which can be used to
- finish the operation with g_file_output_stream_query_info_finish().
- For the synchronous version of this function, see
- g_file_output_stream_query_info().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][gio-GIOScheduler] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_info_finish"
- c:identifier="g_file_output_stream_query_info_finish"
- throws="1">
- <doc xml:space="preserve">Finalizes the asynchronous query started
- by g_file_output_stream_query_info_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileInfo for the finished query.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="OutputStream" c:type="GOutputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="FileOutputStreamPrivate"
- c:type="GFileOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="FileOutputStreamClass"
- c:type="GFileOutputStreamClass"
- glib:is-gtype-struct-for="FileOutputStream">
- <field name="parent_class">
- <type name="OutputStreamClass" c:type="GOutputStreamClass"/>
- </field>
- <field name="tell">
- <callback name="tell">
- <return-value transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_seek">
- <callback name="can_seek">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="seek">
- <callback name="seek" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_truncate">
- <callback name="can_truncate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="truncate_fn">
- <callback name="truncate_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info">
- <callback name="query_info" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFileInfo for the @stream, or %NULL on error.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_async">
- <callback name="query_info_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- <parameter name="attributes" transfer-ownership="none">
- <doc xml:space="preserve">a file attribute query string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][gio-GIOScheduler] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query_info_finish">
- <callback name="query_info_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GFileInfo for the finished query.</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_etag">
- <callback name="get_etag">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the entity tag for the stream.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFileOutputStream.</doc>
- <type name="FileOutputStream" c:type="GFileOutputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="FileOutputStreamPrivate"
- c:type="GFileOutputStreamPrivate"
- disguised="1">
- </record>
- <callback name="FileProgressCallback" c:type="GFileProgressCallback">
- <doc xml:space="preserve">When doing file operations that may take a while, such as moving
- a file or copying a file, a progress callback is used to pass how
- far along that operation is to the application.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="current_num_bytes" transfer-ownership="none">
- <doc xml:space="preserve">the current number of bytes in the operation.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="total_num_bytes" transfer-ownership="none">
- <doc xml:space="preserve">the total number of bytes in the operation.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data passed to the callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="FileQueryInfoFlags"
- glib:type-name="GFileQueryInfoFlags"
- glib:get-type="g_file_query_info_flags_get_type"
- c:type="GFileQueryInfoFlags">
- <doc xml:space="preserve">Flags used when querying a #GFileInfo.</doc>
- <member name="none"
- value="0"
- c:identifier="G_FILE_QUERY_INFO_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="nofollow_symlinks"
- value="1"
- c:identifier="G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS"
- glib:nick="nofollow-symlinks">
- <doc xml:space="preserve">Don't follow symlinks.</doc>
- </member>
- </bitfield>
- <callback name="FileReadMoreCallback" c:type="GFileReadMoreCallback">
- <doc xml:space="preserve">When loading the partial contents of a file with g_file_load_partial_contents_async(),
- it may become necessary to determine if any more data from the file should be loaded.
- A #GFileReadMoreCallback function facilitates this by returning %TRUE if more data
- should be read, or %FALSE otherwise.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if more data should be read back. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="file_contents" transfer-ownership="none">
- <doc xml:space="preserve">the data as currently read.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="file_size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the data currently read.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data passed to the callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="FileType"
- glib:type-name="GFileType"
- glib:get-type="g_file_type_get_type"
- c:type="GFileType">
- <doc xml:space="preserve">Indicates the file's on-disk type.</doc>
- <member name="unknown"
- value="0"
- c:identifier="G_FILE_TYPE_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">File's type is unknown.</doc>
- </member>
- <member name="regular"
- value="1"
- c:identifier="G_FILE_TYPE_REGULAR"
- glib:nick="regular">
- <doc xml:space="preserve">File handle represents a regular file.</doc>
- </member>
- <member name="directory"
- value="2"
- c:identifier="G_FILE_TYPE_DIRECTORY"
- glib:nick="directory">
- <doc xml:space="preserve">File handle represents a directory.</doc>
- </member>
- <member name="symbolic_link"
- value="3"
- c:identifier="G_FILE_TYPE_SYMBOLIC_LINK"
- glib:nick="symbolic-link">
- <doc xml:space="preserve">File handle represents a symbolic link
- (Unix systems).</doc>
- </member>
- <member name="special"
- value="4"
- c:identifier="G_FILE_TYPE_SPECIAL"
- glib:nick="special">
- <doc xml:space="preserve">File is a "special" file, such as a socket, fifo,
- block device, or character device.</doc>
- </member>
- <member name="shortcut"
- value="5"
- c:identifier="G_FILE_TYPE_SHORTCUT"
- glib:nick="shortcut">
- <doc xml:space="preserve">File is a shortcut (Windows systems).</doc>
- </member>
- <member name="mountable"
- value="6"
- c:identifier="G_FILE_TYPE_MOUNTABLE"
- glib:nick="mountable">
- <doc xml:space="preserve">File is a mountable location.</doc>
- </member>
- </enumeration>
- <class name="FilenameCompleter"
- c:symbol-prefix="filename_completer"
- c:type="GFilenameCompleter"
- parent="GObject.Object"
- glib:type-name="GFilenameCompleter"
- glib:get-type="g_filename_completer_get_type"
- glib:type-struct="FilenameCompleterClass">
- <doc xml:space="preserve">Completes partial file and directory names given a partial string by
- looking in the file system for clues. Can return a list of possible
- completion strings for widget implementations.</doc>
- <constructor name="new" c:identifier="g_filename_completer_new">
- <doc xml:space="preserve">Creates a new filename completer.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFilenameCompleter.</doc>
- <type name="FilenameCompleter" c:type="GFilenameCompleter*"/>
- </return-value>
- </constructor>
- <virtual-method name="got_completion_data">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="filename_completer"
- transfer-ownership="none">
- <type name="FilenameCompleter" c:type="GFilenameCompleter*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="get_completion_suffix"
- c:identifier="g_filename_completer_get_completion_suffix">
- <doc xml:space="preserve">Obtains a completion for @initial_text from @completer.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a completed string, or %NULL if no completion exists.
- This string is not owned by GIO, so remember to g_free() it
- when finished.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="completer" transfer-ownership="none">
- <doc xml:space="preserve">the filename completer.</doc>
- <type name="FilenameCompleter" c:type="GFilenameCompleter*"/>
- </instance-parameter>
- <parameter name="initial_text" transfer-ownership="none">
- <doc xml:space="preserve">text to be completed.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_completions"
- c:identifier="g_filename_completer_get_completions">
- <doc xml:space="preserve">Gets an array of completion strings for a given initial text.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">array of strings with possible completions for @initial_text.
- This array must be freed by g_strfreev() when finished.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="completer" transfer-ownership="none">
- <doc xml:space="preserve">the filename completer.</doc>
- <type name="FilenameCompleter" c:type="GFilenameCompleter*"/>
- </instance-parameter>
- <parameter name="initial_text" transfer-ownership="none">
- <doc xml:space="preserve">text to be completed.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_dirs_only"
- c:identifier="g_filename_completer_set_dirs_only">
- <doc xml:space="preserve">If @dirs_only is %TRUE, @completer will only
- complete directory names, and not file names.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="completer" transfer-ownership="none">
- <doc xml:space="preserve">the filename completer.</doc>
- <type name="FilenameCompleter" c:type="GFilenameCompleter*"/>
- </instance-parameter>
- <parameter name="dirs_only" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="got-completion-data" when="last">
- <doc xml:space="preserve">Emitted when the file name completion information comes available.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <record name="FilenameCompleterClass"
- c:type="GFilenameCompleterClass"
- glib:is-gtype-struct-for="FilenameCompleter">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="got_completion_data">
- <callback name="got_completion_data">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="filename_completer" transfer-ownership="none">
- <type name="FilenameCompleter" c:type="GFilenameCompleter*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <enumeration name="FilesystemPreviewType"
- glib:type-name="GFilesystemPreviewType"
- glib:get-type="g_filesystem_preview_type_get_type"
- c:type="GFilesystemPreviewType">
- <doc xml:space="preserve">Indicates a hint from the file system whether files should be
- previewed in a file manager. Returned as the value of the key
- #G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW.</doc>
- <member name="if_always"
- value="0"
- c:identifier="G_FILESYSTEM_PREVIEW_TYPE_IF_ALWAYS"
- glib:nick="if-always">
- <doc xml:space="preserve">Only preview files if user has explicitly requested it.</doc>
- </member>
- <member name="if_local"
- value="1"
- c:identifier="G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL"
- glib:nick="if-local">
- <doc xml:space="preserve">Preview files if user has requested preview of "local" files.</doc>
- </member>
- <member name="never"
- value="2"
- c:identifier="G_FILESYSTEM_PREVIEW_TYPE_NEVER"
- glib:nick="never">
- <doc xml:space="preserve">Never preview files.</doc>
- </member>
- </enumeration>
- <class name="FilterInputStream"
- c:symbol-prefix="filter_input_stream"
- c:type="GFilterInputStream"
- parent="InputStream"
- abstract="1"
- glib:type-name="GFilterInputStream"
- glib:get-type="g_filter_input_stream_get_type"
- glib:type-struct="FilterInputStreamClass">
- <doc xml:space="preserve">Base class for input stream implementations that perform some
- kind of filtering operation on a base stream. Typical examples
- of filtering operations are character set conversion, compression
- and byte order flipping.</doc>
- <method name="get_base_stream"
- c:identifier="g_filter_input_stream_get_base_stream">
- <doc xml:space="preserve">Gets the base stream for the filter stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFilterInputStream.</doc>
- <type name="FilterInputStream" c:type="GFilterInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_close_base_stream"
- c:identifier="g_filter_input_stream_get_close_base_stream">
- <doc xml:space="preserve">Returns whether the base stream will be closed when @stream is
- closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the base stream will be closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFilterInputStream.</doc>
- <type name="FilterInputStream" c:type="GFilterInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_close_base_stream"
- c:identifier="g_filter_input_stream_set_close_base_stream">
- <doc xml:space="preserve">Sets whether the base stream will be closed when @stream is closed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFilterInputStream.</doc>
- <type name="FilterInputStream" c:type="GFilterInputStream*"/>
- </instance-parameter>
- <parameter name="close_base" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to close the base stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="base-stream"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="InputStream"/>
- </property>
- <property name="close-base-stream"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="InputStream" c:type="GInputStream"/>
- </field>
- <field name="base_stream">
- <type name="InputStream" c:type="GInputStream*"/>
- </field>
- </class>
- <record name="FilterInputStreamClass"
- c:type="GFilterInputStreamClass"
- glib:is-gtype-struct-for="FilterInputStream">
- <field name="parent_class">
- <type name="InputStreamClass" c:type="GInputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <class name="FilterOutputStream"
- c:symbol-prefix="filter_output_stream"
- c:type="GFilterOutputStream"
- parent="OutputStream"
- abstract="1"
- glib:type-name="GFilterOutputStream"
- glib:get-type="g_filter_output_stream_get_type"
- glib:type-struct="FilterOutputStreamClass">
- <doc xml:space="preserve">Base class for output stream implementations that perform some
- kind of filtering operation on a base stream. Typical examples
- of filtering operations are character set conversion, compression
- and byte order flipping.</doc>
- <method name="get_base_stream"
- c:identifier="g_filter_output_stream_get_base_stream">
- <doc xml:space="preserve">Gets the base stream for the filter stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFilterOutputStream.</doc>
- <type name="FilterOutputStream" c:type="GFilterOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_close_base_stream"
- c:identifier="g_filter_output_stream_get_close_base_stream">
- <doc xml:space="preserve">Returns whether the base stream will be closed when @stream is
- closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the base stream will be closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFilterOutputStream.</doc>
- <type name="FilterOutputStream" c:type="GFilterOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_close_base_stream"
- c:identifier="g_filter_output_stream_set_close_base_stream">
- <doc xml:space="preserve">Sets whether the base stream will be closed when @stream is closed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GFilterOutputStream.</doc>
- <type name="FilterOutputStream" c:type="GFilterOutputStream*"/>
- </instance-parameter>
- <parameter name="close_base" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to close the base stream.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="base-stream"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="OutputStream"/>
- </property>
- <property name="close-base-stream"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="OutputStream" c:type="GOutputStream"/>
- </field>
- <field name="base_stream">
- <type name="OutputStream" c:type="GOutputStream*"/>
- </field>
- </class>
- <record name="FilterOutputStreamClass"
- c:type="GFilterOutputStreamClass"
- glib:is-gtype-struct-for="FilterOutputStream">
- <field name="parent_class">
- <type name="OutputStreamClass" c:type="GOutputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <enumeration name="IOErrorEnum"
- glib:type-name="GIOErrorEnum"
- glib:get-type="g_io_error_enum_get_type"
- c:type="GIOErrorEnum"
- glib:error-domain="g-io-error-quark">
- <doc xml:space="preserve">Error codes returned by GIO functions.
- Note that this domain may be extended in future GLib releases. In
- general, new error codes either only apply to new APIs, or else
- replace %G_IO_ERROR_FAILED in cases that were not explicitly
- distinguished before. You should therefore avoid writing code like
- |[<!-- language="C" -->
- if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
- {
- // Assume that this is EPRINTERONFIRE
- ...
- }
- ]|
- but should instead treat all unrecognized error codes the same as
- #G_IO_ERROR_FAILED.</doc>
- <member name="failed"
- value="0"
- c:identifier="G_IO_ERROR_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">Generic error condition for when an operation fails
- and no more specific #GIOErrorEnum value is defined.</doc>
- </member>
- <member name="not_found"
- value="1"
- c:identifier="G_IO_ERROR_NOT_FOUND"
- glib:nick="not-found">
- <doc xml:space="preserve">File not found.</doc>
- </member>
- <member name="exists"
- value="2"
- c:identifier="G_IO_ERROR_EXISTS"
- glib:nick="exists">
- <doc xml:space="preserve">File already exists.</doc>
- </member>
- <member name="is_directory"
- value="3"
- c:identifier="G_IO_ERROR_IS_DIRECTORY"
- glib:nick="is-directory">
- <doc xml:space="preserve">File is a directory.</doc>
- </member>
- <member name="not_directory"
- value="4"
- c:identifier="G_IO_ERROR_NOT_DIRECTORY"
- glib:nick="not-directory">
- <doc xml:space="preserve">File is not a directory.</doc>
- </member>
- <member name="not_empty"
- value="5"
- c:identifier="G_IO_ERROR_NOT_EMPTY"
- glib:nick="not-empty">
- <doc xml:space="preserve">File is a directory that isn't empty.</doc>
- </member>
- <member name="not_regular_file"
- value="6"
- c:identifier="G_IO_ERROR_NOT_REGULAR_FILE"
- glib:nick="not-regular-file">
- <doc xml:space="preserve">File is not a regular file.</doc>
- </member>
- <member name="not_symbolic_link"
- value="7"
- c:identifier="G_IO_ERROR_NOT_SYMBOLIC_LINK"
- glib:nick="not-symbolic-link">
- <doc xml:space="preserve">File is not a symbolic link.</doc>
- </member>
- <member name="not_mountable_file"
- value="8"
- c:identifier="G_IO_ERROR_NOT_MOUNTABLE_FILE"
- glib:nick="not-mountable-file">
- <doc xml:space="preserve">File cannot be mounted.</doc>
- </member>
- <member name="filename_too_long"
- value="9"
- c:identifier="G_IO_ERROR_FILENAME_TOO_LONG"
- glib:nick="filename-too-long">
- <doc xml:space="preserve">Filename is too many characters.</doc>
- </member>
- <member name="invalid_filename"
- value="10"
- c:identifier="G_IO_ERROR_INVALID_FILENAME"
- glib:nick="invalid-filename">
- <doc xml:space="preserve">Filename is invalid or contains invalid characters.</doc>
- </member>
- <member name="too_many_links"
- value="11"
- c:identifier="G_IO_ERROR_TOO_MANY_LINKS"
- glib:nick="too-many-links">
- <doc xml:space="preserve">File contains too many symbolic links.</doc>
- </member>
- <member name="no_space"
- value="12"
- c:identifier="G_IO_ERROR_NO_SPACE"
- glib:nick="no-space">
- <doc xml:space="preserve">No space left on drive.</doc>
- </member>
- <member name="invalid_argument"
- value="13"
- c:identifier="G_IO_ERROR_INVALID_ARGUMENT"
- glib:nick="invalid-argument">
- <doc xml:space="preserve">Invalid argument.</doc>
- </member>
- <member name="permission_denied"
- value="14"
- c:identifier="G_IO_ERROR_PERMISSION_DENIED"
- glib:nick="permission-denied">
- <doc xml:space="preserve">Permission denied.</doc>
- </member>
- <member name="not_supported"
- value="15"
- c:identifier="G_IO_ERROR_NOT_SUPPORTED"
- glib:nick="not-supported">
- <doc xml:space="preserve">Operation (or one of its parameters) not supported</doc>
- </member>
- <member name="not_mounted"
- value="16"
- c:identifier="G_IO_ERROR_NOT_MOUNTED"
- glib:nick="not-mounted">
- <doc xml:space="preserve">File isn't mounted.</doc>
- </member>
- <member name="already_mounted"
- value="17"
- c:identifier="G_IO_ERROR_ALREADY_MOUNTED"
- glib:nick="already-mounted">
- <doc xml:space="preserve">File is already mounted.</doc>
- </member>
- <member name="closed"
- value="18"
- c:identifier="G_IO_ERROR_CLOSED"
- glib:nick="closed">
- <doc xml:space="preserve">File was closed.</doc>
- </member>
- <member name="cancelled"
- value="19"
- c:identifier="G_IO_ERROR_CANCELLED"
- glib:nick="cancelled">
- <doc xml:space="preserve">Operation was cancelled. See #GCancellable.</doc>
- </member>
- <member name="pending"
- value="20"
- c:identifier="G_IO_ERROR_PENDING"
- glib:nick="pending">
- <doc xml:space="preserve">Operations are still pending.</doc>
- </member>
- <member name="read_only"
- value="21"
- c:identifier="G_IO_ERROR_READ_ONLY"
- glib:nick="read-only">
- <doc xml:space="preserve">File is read only.</doc>
- </member>
- <member name="cant_create_backup"
- value="22"
- c:identifier="G_IO_ERROR_CANT_CREATE_BACKUP"
- glib:nick="cant-create-backup">
- <doc xml:space="preserve">Backup couldn't be created.</doc>
- </member>
- <member name="wrong_etag"
- value="23"
- c:identifier="G_IO_ERROR_WRONG_ETAG"
- glib:nick="wrong-etag">
- <doc xml:space="preserve">File's Entity Tag was incorrect.</doc>
- </member>
- <member name="timed_out"
- value="24"
- c:identifier="G_IO_ERROR_TIMED_OUT"
- glib:nick="timed-out">
- <doc xml:space="preserve">Operation timed out.</doc>
- </member>
- <member name="would_recurse"
- value="25"
- c:identifier="G_IO_ERROR_WOULD_RECURSE"
- glib:nick="would-recurse">
- <doc xml:space="preserve">Operation would be recursive.</doc>
- </member>
- <member name="busy"
- value="26"
- c:identifier="G_IO_ERROR_BUSY"
- glib:nick="busy">
- <doc xml:space="preserve">File is busy.</doc>
- </member>
- <member name="would_block"
- value="27"
- c:identifier="G_IO_ERROR_WOULD_BLOCK"
- glib:nick="would-block">
- <doc xml:space="preserve">Operation would block.</doc>
- </member>
- <member name="host_not_found"
- value="28"
- c:identifier="G_IO_ERROR_HOST_NOT_FOUND"
- glib:nick="host-not-found">
- <doc xml:space="preserve">Host couldn't be found (remote operations).</doc>
- </member>
- <member name="would_merge"
- value="29"
- c:identifier="G_IO_ERROR_WOULD_MERGE"
- glib:nick="would-merge">
- <doc xml:space="preserve">Operation would merge files.</doc>
- </member>
- <member name="failed_handled"
- value="30"
- c:identifier="G_IO_ERROR_FAILED_HANDLED"
- glib:nick="failed-handled">
- <doc xml:space="preserve">Operation failed and a helper program has
- already interacted with the user. Do not display any error dialog.</doc>
- </member>
- <member name="too_many_open_files"
- value="31"
- c:identifier="G_IO_ERROR_TOO_MANY_OPEN_FILES"
- glib:nick="too-many-open-files">
- <doc xml:space="preserve">The current process has too many files
- open and can't open any more. Duplicate descriptors do count toward
- this limit. Since 2.20</doc>
- </member>
- <member name="not_initialized"
- value="32"
- c:identifier="G_IO_ERROR_NOT_INITIALIZED"
- glib:nick="not-initialized">
- <doc xml:space="preserve">The object has not been initialized. Since 2.22</doc>
- </member>
- <member name="address_in_use"
- value="33"
- c:identifier="G_IO_ERROR_ADDRESS_IN_USE"
- glib:nick="address-in-use">
- <doc xml:space="preserve">The requested address is already in use. Since 2.22</doc>
- </member>
- <member name="partial_input"
- value="34"
- c:identifier="G_IO_ERROR_PARTIAL_INPUT"
- glib:nick="partial-input">
- <doc xml:space="preserve">Need more input to finish operation. Since 2.24</doc>
- </member>
- <member name="invalid_data"
- value="35"
- c:identifier="G_IO_ERROR_INVALID_DATA"
- glib:nick="invalid-data">
- <doc xml:space="preserve">The input data was invalid. Since 2.24</doc>
- </member>
- <member name="dbus_error"
- value="36"
- c:identifier="G_IO_ERROR_DBUS_ERROR"
- glib:nick="dbus-error">
- <doc xml:space="preserve">A remote object generated an error that
- doesn't correspond to a locally registered #GError error
- domain. Use g_dbus_error_get_remote_error() to extract the D-Bus
- error name and g_dbus_error_strip_remote_error() to fix up the
- message so it matches what was received on the wire. Since 2.26.</doc>
- </member>
- <member name="host_unreachable"
- value="37"
- c:identifier="G_IO_ERROR_HOST_UNREACHABLE"
- glib:nick="host-unreachable">
- <doc xml:space="preserve">Host unreachable. Since 2.26</doc>
- </member>
- <member name="network_unreachable"
- value="38"
- c:identifier="G_IO_ERROR_NETWORK_UNREACHABLE"
- glib:nick="network-unreachable">
- <doc xml:space="preserve">Network unreachable. Since 2.26</doc>
- </member>
- <member name="connection_refused"
- value="39"
- c:identifier="G_IO_ERROR_CONNECTION_REFUSED"
- glib:nick="connection-refused">
- <doc xml:space="preserve">Connection refused. Since 2.26</doc>
- </member>
- <member name="proxy_failed"
- value="40"
- c:identifier="G_IO_ERROR_PROXY_FAILED"
- glib:nick="proxy-failed">
- <doc xml:space="preserve">Connection to proxy server failed. Since 2.26</doc>
- </member>
- <member name="proxy_auth_failed"
- value="41"
- c:identifier="G_IO_ERROR_PROXY_AUTH_FAILED"
- glib:nick="proxy-auth-failed">
- <doc xml:space="preserve">Proxy authentication failed. Since 2.26</doc>
- </member>
- <member name="proxy_need_auth"
- value="42"
- c:identifier="G_IO_ERROR_PROXY_NEED_AUTH"
- glib:nick="proxy-need-auth">
- <doc xml:space="preserve">Proxy server needs authentication. Since 2.26</doc>
- </member>
- <member name="proxy_not_allowed"
- value="43"
- c:identifier="G_IO_ERROR_PROXY_NOT_ALLOWED"
- glib:nick="proxy-not-allowed">
- <doc xml:space="preserve">Proxy connection is not allowed by ruleset.
- Since 2.26</doc>
- </member>
- <member name="broken_pipe"
- value="44"
- c:identifier="G_IO_ERROR_BROKEN_PIPE"
- glib:nick="broken-pipe">
- <doc xml:space="preserve">Broken pipe. Since 2.36</doc>
- </member>
- <member name="connection_closed"
- value="44"
- c:identifier="G_IO_ERROR_CONNECTION_CLOSED"
- glib:nick="connection-closed">
- <doc xml:space="preserve">Connection closed by peer. Note that this
- is the same code as %G_IO_ERROR_BROKEN_PIPE; before 2.44 some
- "connection closed" errors returned %G_IO_ERROR_BROKEN_PIPE, but others
- returned %G_IO_ERROR_FAILED. Now they should all return the same
- value, which has this more logical name. Since 2.44.</doc>
- </member>
- <member name="not_connected"
- value="45"
- c:identifier="G_IO_ERROR_NOT_CONNECTED"
- glib:nick="not-connected">
- <doc xml:space="preserve">Transport endpoint is not connected. Since 2.44</doc>
- </member>
- <member name="message_too_large"
- value="46"
- c:identifier="G_IO_ERROR_MESSAGE_TOO_LARGE"
- glib:nick="message-too-large">
- <doc xml:space="preserve">Message too large. Since 2.48.</doc>
- </member>
- </enumeration>
- <record name="IOExtension" c:type="GIOExtension" disguised="1">
- <doc xml:space="preserve">#GIOExtension is an opaque data structure and can only be accessed
- using the following functions.</doc>
- <method name="get_name" c:identifier="g_io_extension_get_name">
- <doc xml:space="preserve">Gets the name under which @extension was registered.
- Note that the same type may be registered as extension
- for multiple extension points, under different names.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of @extension.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtension</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_priority" c:identifier="g_io_extension_get_priority">
- <doc xml:space="preserve">Gets the priority with which @extension was registered.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the priority of @extension</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtension</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_type" c:identifier="g_io_extension_get_type">
- <doc xml:space="preserve">Gets the type associated with @extension.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the type of @extension</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtension</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="ref_class"
- c:identifier="g_io_extension_ref_class"
- introspectable="0">
- <doc xml:space="preserve">Gets a reference to the class for the type that is
- associated with @extension.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GTypeClass for the type of @extension</doc>
- <type name="GObject.TypeClass" c:type="GTypeClass*"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtension</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="IOExtensionPoint" c:type="GIOExtensionPoint" disguised="1">
- <doc xml:space="preserve">#GIOExtensionPoint is an opaque data structure and can only be accessed
- using the following functions.</doc>
- <method name="get_extension_by_name"
- c:identifier="g_io_extension_point_get_extension_by_name">
- <doc xml:space="preserve">Finds a #GIOExtension for an extension point by name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GIOExtension for @extension_point that has the
- given name, or %NULL if there is no extension with that name</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtensionPoint</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the extension to get</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_extensions"
- c:identifier="g_io_extension_point_get_extensions">
- <doc xml:space="preserve">Gets a list of all extensions that implement this extension point.
- The list is sorted by priority, beginning with the highest priority.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GList of
- #GIOExtensions. The list is owned by GIO and should not be
- modified.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="IOExtension"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="extension_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtensionPoint</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_required_type"
- c:identifier="g_io_extension_point_get_required_type">
- <doc xml:space="preserve">Gets the required type for @extension_point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType that all implementations must have,
- or #G_TYPE_INVALID if the extension point has no required type</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtensionPoint</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_required_type"
- c:identifier="g_io_extension_point_set_required_type">
- <doc xml:space="preserve">Sets the required type for @extension_point to @type.
- All implementations must henceforth have this type.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="extension_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtensionPoint</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the #GType to require</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <function name="implement" c:identifier="g_io_extension_point_implement">
- <doc xml:space="preserve">Registers @type as extension for the extension point with name
- @extension_point_name.
- If @type has already been registered as an extension for this
- extension point, the existing #GIOExtension object is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtension object for #GType</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </return-value>
- <parameters>
- <parameter name="extension_point_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the extension point</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the #GType to register as extension</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="extension_name" transfer-ownership="none">
- <doc xml:space="preserve">the name for the extension</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">the priority for the extension</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="lookup" c:identifier="g_io_extension_point_lookup">
- <doc xml:space="preserve">Looks up an existing extension point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GIOExtensionPoint, or %NULL if there
- is no registered extension point with the given name.</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the extension point</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register" c:identifier="g_io_extension_point_register">
- <doc xml:space="preserve">Registers an extension point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the new #GIOExtensionPoint. This object is
- owned by GIO and should not be freed.</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the extension point</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <class name="IOModule"
- c:symbol-prefix="io_module"
- c:type="GIOModule"
- parent="GObject.TypeModule"
- glib:type-name="GIOModule"
- glib:get-type="g_io_module_get_type"
- glib:type-struct="IOModuleClass">
- <doc xml:space="preserve">Provides an interface and default functions for loading and unloading
- modules. This is used internally to make GIO extensible, but can also
- be used by others to implement module loading.</doc>
- <implements name="GObject.TypePlugin"/>
- <constructor name="new" c:identifier="g_io_module_new">
- <doc xml:space="preserve">Creates a new GIOModule that will load the specific
- shared library when in use.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOModule from given @filename,
- or %NULL on error.</doc>
- <type name="IOModule" c:type="GIOModule*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">filename of the shared library module.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="query" c:identifier="g_io_module_query" version="2.24">
- <doc xml:space="preserve">Optional API for GIO modules to implement.
- Should return a list of all the extension points that may be
- implemented in this module.
- This method will not be called in normal use, however it may be
- called when probing existing modules and recording which extension
- points that this model is used for. This means we won't have to
- load and initialize this module unless its needed.
- If this function is not implemented by the module the module will
- always be loaded, initialized and then unloaded on application
- startup so that it can register its extension points during init.
- Note that a module need not actually implement all the extension
- points that g_io_module_query() returns, since the exact list of
- extension may depend on runtime issues. However all extension
- points actually implemented must be returned by g_io_module_query()
- (if defined).
- When installing a module that implements g_io_module_query() you must
- run gio-querymodules in order to build the cache files required for
- lazy loading.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A %NULL-terminated array of strings,
- listing the supported extension points of the module. The array
- must be suitable for freeing with g_strfreev().</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- </function>
- <method name="load" c:identifier="g_io_module_load">
- <doc xml:space="preserve">Required API for GIO modules to implement.
- This function is run after the module has been loaded into GIO,
- to initialize the module. Typically, this function will call
- g_io_extension_point_implement().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="module" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOModule.</doc>
- <type name="IOModule" c:type="GIOModule*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unload" c:identifier="g_io_module_unload">
- <doc xml:space="preserve">Required API for GIO modules to implement.
- This function is run when the module is being unloaded from GIO,
- to finalize the module.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="module" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOModule.</doc>
- <type name="IOModule" c:type="GIOModule*"/>
- </instance-parameter>
- </parameters>
- </method>
- </class>
- <record name="IOModuleClass"
- c:type="GIOModuleClass"
- disguised="1"
- glib:is-gtype-struct-for="IOModule">
- </record>
- <record name="IOModuleScope"
- c:type="GIOModuleScope"
- disguised="1"
- version="2.30">
- <doc xml:space="preserve">Represents a scope for loading IO modules. A scope can be used for blocking
- duplicate modules, or blocking a module you don't want to load.
- The scope can be used with g_io_modules_load_all_in_directory_with_scope()
- or g_io_modules_scan_all_in_directory_with_scope().</doc>
- <method name="block"
- c:identifier="g_io_module_scope_block"
- version="2.30">
- <doc xml:space="preserve">Block modules with the given @basename from being loaded when
- this scope is used with g_io_modules_scan_all_in_directory_with_scope()
- or g_io_modules_load_all_in_directory_with_scope().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="scope" transfer-ownership="none">
- <doc xml:space="preserve">a module loading scope</doc>
- <type name="IOModuleScope" c:type="GIOModuleScope*"/>
- </instance-parameter>
- <parameter name="basename" transfer-ownership="none">
- <doc xml:space="preserve">the basename to block</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="g_io_module_scope_free" version="2.30">
- <doc xml:space="preserve">Free a module scope.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="scope" transfer-ownership="none">
- <doc xml:space="preserve">a module loading scope</doc>
- <type name="IOModuleScope" c:type="GIOModuleScope*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="new"
- c:identifier="g_io_module_scope_new"
- version="2.30"
- introspectable="0">
- <doc xml:space="preserve">Create a new scope for loading of IO modules. A scope can be used for
- blocking duplicate modules, or blocking a module you don't want to load.
- Specify the %G_IO_MODULE_SCOPE_BLOCK_DUPLICATES flag to block modules
- which have the same base name as a module that has already been seen
- in this scope.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new module scope</doc>
- <type name="IOModuleScope" c:type="GIOModuleScope*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags for the new scope</doc>
- <type name="IOModuleScopeFlags" c:type="GIOModuleScopeFlags"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <enumeration name="IOModuleScopeFlags"
- version="2.30"
- glib:type-name="GIOModuleScopeFlags"
- glib:get-type="g_io_module_scope_flags_get_type"
- c:type="GIOModuleScopeFlags">
- <doc xml:space="preserve">Flags for use with g_io_module_scope_new().</doc>
- <member name="none"
- value="0"
- c:identifier="G_IO_MODULE_SCOPE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No module scan flags</doc>
- </member>
- <member name="block_duplicates"
- value="1"
- c:identifier="G_IO_MODULE_SCOPE_BLOCK_DUPLICATES"
- glib:nick="block-duplicates">
- <doc xml:space="preserve">When using this scope to load or
- scan modules, automatically block a modules which has the same base
- basename as previously loaded module.</doc>
- </member>
- </enumeration>
- <record name="IOSchedulerJob" c:type="GIOSchedulerJob" disguised="1">
- <doc xml:space="preserve">Opaque class for defining and scheduling IO jobs.</doc>
- <method name="send_to_mainloop"
- c:identifier="g_io_scheduler_job_send_to_mainloop"
- deprecated="1">
- <doc xml:space="preserve">Used from an I/O job to send a callback to be run in the thread
- that the job was started from, waiting for the result (and thus
- blocking the I/O job).</doc>
- <doc-deprecated xml:space="preserve">Use g_main_context_invoke().</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The return value of @func</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="job" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOSchedulerJob</doc>
- <type name="IOSchedulerJob" c:type="GIOSchedulerJob*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GSourceFunc callback that will be called in the original thread</doc>
- <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify for @user_data, or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_to_mainloop_async"
- c:identifier="g_io_scheduler_job_send_to_mainloop_async"
- deprecated="1">
- <doc xml:space="preserve">Used from an I/O job to send a callback to be run asynchronously in
- the thread that the job was started from. The callback will be run
- when the main loop is available, but at that time the I/O job might
- have finished. The return value from the callback is ignored.
- Note that if you are passing the @user_data from g_io_scheduler_push_job()
- on to this function you have to ensure that it is not freed before
- @func is called, either by passing %NULL as @notify to
- g_io_scheduler_push_job() or by using refcounting for @user_data.</doc>
- <doc-deprecated xml:space="preserve">Use g_main_context_invoke().</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="job" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOSchedulerJob</doc>
- <type name="IOSchedulerJob" c:type="GIOSchedulerJob*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GSourceFunc callback that will be called in the original thread</doc>
- <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to @func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify for @user_data, or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <callback name="IOSchedulerJobFunc" c:type="GIOSchedulerJobFunc">
- <doc xml:space="preserve">I/O Job function.
- Long-running jobs should periodically check the @cancellable
- to see if they have been cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if this function should be called again to
- complete the job, %FALSE if the job is complete (or cancelled)</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="job" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOSchedulerJob.</doc>
- <type name="IOSchedulerJob" c:type="GIOSchedulerJob*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="IOStream"
- c:symbol-prefix="io_stream"
- c:type="GIOStream"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GIOStream"
- glib:get-type="g_io_stream_get_type"
- glib:type-struct="IOStreamClass">
- <doc xml:space="preserve">GIOStream represents an object that has both read and write streams.
- Generally the two streams act as separate input and output streams,
- but they share some common resources and state. For instance, for
- seekable streams, both streams may use the same position.
- Examples of #GIOStream objects are #GSocketConnection, which represents
- a two-way network connection; and #GFileIOStream, which represents a
- file handle opened in read-write mode.
- To do the actual reading and writing you need to get the substreams
- with g_io_stream_get_input_stream() and g_io_stream_get_output_stream().
- The #GIOStream object owns the input and the output streams, not the other
- way around, so keeping the substreams alive will not keep the #GIOStream
- object alive. If the #GIOStream object is freed it will be closed, thus
- closing the substreams, so even if the substreams stay alive they will
- always return %G_IO_ERROR_CLOSED for all operations.
- To close a stream use g_io_stream_close() which will close the common
- stream object and also the individual substreams. You can also close
- the substreams themselves. In most cases this only marks the
- substream as closed, so further I/O on it fails but common state in the
- #GIOStream may still be open. However, some streams may support
- "half-closed" states where one direction of the stream is actually shut down.
- Operations on #GIOStreams cannot be started while another operation on the
- #GIOStream or its substreams is in progress. Specifically, an application can
- read from the #GInputStream and write to the #GOutputStream simultaneously
- (either in separate threads, or as asynchronous operations in the same
- thread), but an application cannot start any #GIOStream operation while there
- is a #GIOStream, #GInputStream or #GOutputStream operation in progress, and
- an application can’t start any #GInputStream or #GOutputStream operation
- while there is a #GIOStream operation in progress.
- This is a product of individual stream operations being associated with a
- given #GMainContext (the thread-default context at the time the operation was
- started), rather than entire streams being associated with a single
- #GMainContext.
- GIO may run operations on #GIOStreams from other (worker) threads, and this
- may be exposed to application code in the behaviour of wrapper streams, such
- as #GBufferedInputStream or #GTlsConnection. With such wrapper APIs,
- application code may only run operations on the base (wrapped) stream when
- the wrapper stream is idle. Note that the semantics of such operations may
- not be well-defined due to the state the wrapper stream leaves the base
- stream in (though they are guaranteed not to crash).</doc>
- <function name="splice_finish"
- c:identifier="g_io_stream_splice_finish"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous io stream splice operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="close_async" invoker="close_async" version="2.22">
- <doc xml:space="preserve">Requests an asynchronous close of the stream, releasing resources
- related to it. When the operation is finished @callback will be
- called. You can then call g_io_stream_close_finish() to get
- the result of the operation.
- For behaviour details see g_io_stream_close().
- The asynchronous methods have a default fallback that uses threads
- to implement asynchronicity, so they are optional for inheriting
- classes. However, if you override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_finish"
- invoker="close_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Closes a stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if stream was successfully closed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_input_stream"
- invoker="get_input_stream"
- version="2.22">
- <doc xml:space="preserve">Gets the input stream for this object. This is used
- for reading.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream, owned by the #GIOStream.
- Do not free.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_output_stream"
- invoker="get_output_stream"
- version="2.22">
- <doc xml:space="preserve">Gets the output stream for this object. This is used for
- writing.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream, owned by the #GIOStream.
- Do not free.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="clear_pending"
- c:identifier="g_io_stream_clear_pending"
- version="2.22">
- <doc xml:space="preserve">Clears the pending flag on @stream.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="close"
- c:identifier="g_io_stream_close"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Closes the stream, releasing resources related to it. This will also
- close the individual input and output streams, if they are not already
- closed.
- Once the stream is closed, all other operations will return
- %G_IO_ERROR_CLOSED. Closing a stream multiple times will not
- return an error.
- Closing a stream will automatically flush any outstanding buffers
- in the stream.
- Streams will be automatically closed when the last reference
- is dropped, but you might want to call this function to make sure
- resources are released as early as possible.
- Some streams might keep the backing store of the stream (e.g. a file
- descriptor) open after the stream is closed. See the documentation for
- the individual stream for details.
- On failure the first error that happened will be reported, but the
- close operation will finish as much as possible. A stream that failed
- to close will still return %G_IO_ERROR_CLOSED for all operations.
- Still, it is important to check and report the error to the user,
- otherwise there might be a loss of data as all data might not be written.
- If @cancellable is not NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- Cancelling a close will still leave the stream closed, but some streams
- can use a faster close that doesn't block to e.g. check errors.
- The default implementation of this method just calls close on the
- individual input/output streams.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_async"
- c:identifier="g_io_stream_close_async"
- version="2.22">
- <doc xml:space="preserve">Requests an asynchronous close of the stream, releasing resources
- related to it. When the operation is finished @callback will be
- called. You can then call g_io_stream_close_finish() to get
- the result of the operation.
- For behaviour details see g_io_stream_close().
- The asynchronous methods have a default fallback that uses threads
- to implement asynchronicity, so they are optional for inheriting
- classes. However, if you override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_finish"
- c:identifier="g_io_stream_close_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Closes a stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if stream was successfully closed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_input_stream"
- c:identifier="g_io_stream_get_input_stream"
- version="2.22">
- <doc xml:space="preserve">Gets the input stream for this object. This is used
- for reading.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream, owned by the #GIOStream.
- Do not free.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_output_stream"
- c:identifier="g_io_stream_get_output_stream"
- version="2.22">
- <doc xml:space="preserve">Gets the output stream for this object. This is used for
- writing.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream, owned by the #GIOStream.
- Do not free.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_pending"
- c:identifier="g_io_stream_has_pending"
- version="2.22">
- <doc xml:space="preserve">Checks if a stream has pending actions.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream has pending actions.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closed"
- c:identifier="g_io_stream_is_closed"
- version="2.22">
- <doc xml:space="preserve">Checks if a stream is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream is closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_pending"
- c:identifier="g_io_stream_set_pending"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Sets @stream to have actions pending. If the pending flag is
- already set or @stream is closed, it will return %FALSE and set
- @error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if pending was previously unset and is now set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="splice_async"
- c:identifier="g_io_stream_splice_async"
- version="2.28">
- <doc xml:space="preserve">Asyncronously splice the output stream of @stream1 to the input stream of
- @stream2, and splice the output stream of @stream2 to the input stream of
- @stream1.
- When the operation is finished @callback will be called.
- You can then call g_io_stream_splice_finish() to get the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream1" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </instance-parameter>
- <parameter name="stream2" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GIOStreamSpliceFlags.</doc>
- <type name="IOStreamSpliceFlags" c:type="GIOStreamSpliceFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <property name="closed" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="input-stream" transfer-ownership="none">
- <type name="InputStream"/>
- </property>
- <property name="output-stream" transfer-ownership="none">
- <type name="OutputStream"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="IOStreamPrivate" c:type="GIOStreamPrivate*"/>
- </field>
- </class>
- <record name="IOStreamAdapter" c:type="GIOStreamAdapter" disguised="1">
- </record>
- <record name="IOStreamClass"
- c:type="GIOStreamClass"
- glib:is-gtype-struct-for="IOStream">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_input_stream">
- <callback name="get_input_stream">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream, owned by the #GIOStream.
- Do not free.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_output_stream">
- <callback name="get_output_stream">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream, owned by the #GIOStream.
- Do not free.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_fn">
- <callback name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_async">
- <callback name="close_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_finish">
- <callback name="close_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if stream was successfully closed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved7" introspectable="0">
- <callback name="_g_reserved7">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved8" introspectable="0">
- <callback name="_g_reserved8">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved9" introspectable="0">
- <callback name="_g_reserved9">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved10" introspectable="0">
- <callback name="_g_reserved10">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="IOStreamPrivate" c:type="GIOStreamPrivate" disguised="1">
- </record>
- <bitfield name="IOStreamSpliceFlags"
- version="2.28"
- glib:type-name="GIOStreamSpliceFlags"
- glib:get-type="g_io_stream_splice_flags_get_type"
- c:type="GIOStreamSpliceFlags">
- <doc xml:space="preserve">GIOStreamSpliceFlags determine how streams should be spliced.</doc>
- <member name="none"
- value="0"
- c:identifier="G_IO_STREAM_SPLICE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">Do not close either stream.</doc>
- </member>
- <member name="close_stream1"
- value="1"
- c:identifier="G_IO_STREAM_SPLICE_CLOSE_STREAM1"
- glib:nick="close-stream1">
- <doc xml:space="preserve">Close the first stream after
- the splice.</doc>
- </member>
- <member name="close_stream2"
- value="2"
- c:identifier="G_IO_STREAM_SPLICE_CLOSE_STREAM2"
- glib:nick="close-stream2">
- <doc xml:space="preserve">Close the second stream after
- the splice.</doc>
- </member>
- <member name="wait_for_both"
- value="4"
- c:identifier="G_IO_STREAM_SPLICE_WAIT_FOR_BOTH"
- glib:nick="wait-for-both">
- <doc xml:space="preserve">Wait for both splice operations to finish
- before calling the callback.</doc>
- </member>
- </bitfield>
- <interface name="Icon"
- c:symbol-prefix="icon"
- c:type="GIcon"
- glib:type-name="GIcon"
- glib:get-type="g_icon_get_type"
- glib:type-struct="IconIface">
- <doc xml:space="preserve">#GIcon is a very minimal interface for icons. It provides functions
- for checking the equality of two icons, hashing of icons and
- serializing an icon to and from strings.
- #GIcon does not provide the actual pixmap for the icon as this is out
- of GIO's scope, however implementations of #GIcon may contain the name
- of an icon (see #GThemedIcon), or the path to an icon (see #GLoadableIcon).
- To obtain a hash of a #GIcon, see g_icon_hash().
- To check if two #GIcons are equal, see g_icon_equal().
- For serializing a #GIcon, use g_icon_serialize() and
- g_icon_deserialize().
- If you want to consume #GIcon (for example, in a toolkit) you must
- be prepared to handle at least the three following cases:
- #GLoadableIcon, #GThemedIcon and #GEmblemedIcon. It may also make
- sense to have fast-paths for other cases (like handling #GdkPixbuf
- directly, for example) but all compliant #GIcon implementations
- outside of GIO must implement #GLoadableIcon.
- If your application or library provides one or more #GIcon
- implementations you need to ensure that your new implementation also
- implements #GLoadableIcon. Additionally, you must provide an
- implementation of g_icon_serialize() that gives a result that is
- understood by g_icon_deserialize(), yielding one of the built-in icon
- types.</doc>
- <function name="deserialize"
- c:identifier="g_icon_deserialize"
- version="2.38">
- <doc xml:space="preserve">Deserializes a #GIcon previously serialized using g_icon_serialize().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon, or %NULL when deserialization fails.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant created with g_icon_serialize()</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </function>
- <function name="hash" c:identifier="g_icon_hash">
- <doc xml:space="preserve">Gets a hash for an icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint containing a hash for the @icon, suitable for
- use in a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to an icon object.</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_for_string"
- c:identifier="g_icon_new_for_string"
- version="2.20"
- throws="1">
- <doc xml:space="preserve">Generate a #GIcon instance from @str. This function can fail if
- @str is not valid - see g_icon_to_string() for discussion.
- If your application or library provides one or more #GIcon
- implementations you need to ensure that each #GType is registered
- with the type system prior to calling g_icon_new_for_string().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">An object implementing the #GIcon
- interface or %NULL if @error is set.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="str" transfer-ownership="none">
- <doc xml:space="preserve">A string obtained via g_icon_to_string().</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="equal" invoker="equal">
- <doc xml:space="preserve">Checks if two icons are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @icon1 is equal to @icon2. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the first #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- <parameter name="icon2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the second #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="hash" invoker="hash">
- <doc xml:space="preserve">Gets a hash for an icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint containing a hash for the @icon, suitable for
- use in a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to an icon object.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="serialize" invoker="serialize" version="2.38">
- <doc xml:space="preserve">Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved
- back by calling g_icon_deserialize() on the returned value.
- As serialization will avoid using raw icon data when possible, it only
- makes sense to transfer the #GVariant between processes on the same machine,
- (as opposed to over the network), and within the same file system namespace.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVariant, or %NULL when serialization fails.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="to_tokens"
- invoker="to_string"
- version="2.20"
- introspectable="0">
- <doc xml:space="preserve">Generates a textual representation of @icon that can be used for
- serialization such as when passing @icon to a different process or
- saving it to persistent storage. Use g_icon_new_for_string() to
- get @icon back from the returned string.
- The encoding of the returned string is proprietary to #GIcon except
- in the following two cases
- - If @icon is a #GFileIcon, the returned string is a native path
- (such as `/path/to/my icon.png`) without escaping
- if the #GFile for @icon is a native file. If the file is not
- native, the returned string is the result of g_file_get_uri()
- (such as `sftp://path/to/my%20icon.png`).
- - If @icon is a #GThemedIcon with exactly one name, the encoding is
- simply the name (such as `network-server`).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An allocated NUL-terminated UTF8 string or
- %NULL if @icon can't be serialized. Use g_free() to free.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- <parameter name="tokens" transfer-ownership="none">
- <array name="GLib.PtrArray" c:type="GPtrArray*">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- <parameter name="out_version" transfer-ownership="none">
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="equal" c:identifier="g_icon_equal">
- <doc xml:space="preserve">Checks if two icons are equal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @icon1 is equal to @icon2. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the first #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- <parameter name="icon2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the second #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </method>
- <method name="serialize" c:identifier="g_icon_serialize" version="2.38">
- <doc xml:space="preserve">Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved
- back by calling g_icon_deserialize() on the returned value.
- As serialization will avoid using raw icon data when possible, it only
- makes sense to transfer the #GVariant between processes on the same machine,
- (as opposed to over the network), and within the same file system namespace.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVariant, or %NULL when serialization fails.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_string" c:identifier="g_icon_to_string" version="2.20">
- <doc xml:space="preserve">Generates a textual representation of @icon that can be used for
- serialization such as when passing @icon to a different process or
- saving it to persistent storage. Use g_icon_new_for_string() to
- get @icon back from the returned string.
- The encoding of the returned string is proprietary to #GIcon except
- in the following two cases
- - If @icon is a #GFileIcon, the returned string is a native path
- (such as `/path/to/my icon.png`) without escaping
- if the #GFile for @icon is a native file. If the file is not
- native, the returned string is the result of g_file_get_uri()
- (such as `sftp://path/to/my%20icon.png`).
- - If @icon is a #GThemedIcon with exactly one name, the encoding is
- simply the name (such as `network-server`).</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">An allocated NUL-terminated UTF8 string or
- %NULL if @icon can't be serialized. Use g_free() to free.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <record name="IconIface"
- c:type="GIconIface"
- glib:is-gtype-struct-for="Icon">
- <doc xml:space="preserve">GIconIface is used to implement GIcon types for various
- different systems. See #GThemedIcon and #GLoadableIcon for
- examples of how to implement this interface.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="hash">
- <callback name="hash">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint containing a hash for the @icon, suitable for
- use in a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to an icon object.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="equal">
- <callback name="equal">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @icon1 is equal to @icon2. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="icon1"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the first #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- <parameter name="icon2"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the second #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="to_tokens" introspectable="0">
- <callback name="to_tokens" introspectable="0">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An allocated NUL-terminated UTF8 string or
- %NULL if @icon can't be serialized. Use g_free() to free.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- <parameter name="tokens" transfer-ownership="none">
- <array name="GLib.PtrArray" c:type="GPtrArray*">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- <parameter name="out_version" transfer-ownership="none">
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="from_tokens" introspectable="0">
- <callback name="from_tokens" introspectable="0" throws="1">
- <return-value>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="tokens" transfer-ownership="none">
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- <parameter name="num_tokens" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="version" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="serialize">
- <callback name="serialize">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVariant, or %NULL when serialization fails.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="InetAddress"
- c:symbol-prefix="inet_address"
- c:type="GInetAddress"
- parent="GObject.Object"
- glib:type-name="GInetAddress"
- glib:get-type="g_inet_address_get_type"
- glib:type-struct="InetAddressClass">
- <doc xml:space="preserve">#GInetAddress represents an IPv4 or IPv6 internet address. Use
- g_resolver_lookup_by_name() or g_resolver_lookup_by_name_async() to
- look up the #GInetAddress for a hostname. Use
- g_resolver_lookup_by_address() or
- g_resolver_lookup_by_address_async() to look up the hostname for a
- #GInetAddress.
- To actually connect to a remote host, you will need a
- #GInetSocketAddress (which includes a #GInetAddress as well as a
- port number).</doc>
- <constructor name="new_any"
- c:identifier="g_inet_address_new_any"
- version="2.22">
- <doc xml:space="preserve">Creates a #GInetAddress for the "any" address (unassigned/"don't
- care") for @family.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetAddress corresponding to the "any" address
- for @family.
- Free the returned object with g_object_unref().</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </return-value>
- <parameters>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">the address family</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_bytes"
- c:identifier="g_inet_address_new_from_bytes"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GInetAddress from the given @family and @bytes.
- @bytes should be 4 bytes for %G_SOCKET_FAMILY_IPV4 and 16 bytes for
- %G_SOCKET_FAMILY_IPV6.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetAddress corresponding to @family and @bytes.
- Free the returned object with g_object_unref().</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </return-value>
- <parameters>
- <parameter name="bytes" transfer-ownership="none">
- <doc xml:space="preserve">raw address data</doc>
- <array zero-terminated="0" c:type="guint8*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">the address family of @bytes</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_string"
- c:identifier="g_inet_address_new_from_string"
- version="2.22">
- <doc xml:space="preserve">Parses @string as an IP address and creates a new #GInetAddress.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetAddress corresponding to @string, or %NULL if
- @string could not be parsed.
- Free the returned object with g_object_unref().</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">a string representation of an IP address</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_loopback"
- c:identifier="g_inet_address_new_loopback"
- version="2.22">
- <doc xml:space="preserve">Creates a #GInetAddress for the loopback address for @family.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetAddress corresponding to the loopback address
- for @family.
- Free the returned object with g_object_unref().</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </return-value>
- <parameters>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">the address family</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="to_bytes"
- invoker="to_bytes"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Gets the raw binary address data from @address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a pointer to an internal array of the bytes in @address,
- which should not be modified, stored, or freed. The size of this
- array can be gotten with g_inet_address_get_native_size().</doc>
- <type name="guint8" c:type="const guint8*"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="to_string" invoker="to_string" version="2.22">
- <doc xml:space="preserve">Converts @address to string form.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a representation of @address as a string, which should be
- freed after use.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="equal" c:identifier="g_inet_address_equal" version="2.30">
- <doc xml:space="preserve">Checks if two #GInetAddress instances are equal, e.g. the same address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address and @other_address are equal, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">A #GInetAddress.</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- <parameter name="other_address" transfer-ownership="none">
- <doc xml:space="preserve">Another #GInetAddress.</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_family"
- c:identifier="g_inet_address_get_family"
- version="2.22">
- <doc xml:space="preserve">Gets @address's family</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@address's family</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_any"
- c:identifier="g_inet_address_get_is_any"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is the "any" address for its family.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is the "any" address for its family.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_link_local"
- c:identifier="g_inet_address_get_is_link_local"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a link-local address (that is, if it
- identifies a host on a local network that is not connected to the
- Internet).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a link-local address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_loopback"
- c:identifier="g_inet_address_get_is_loopback"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is the loopback address for its family.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is the loopback address for its family.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_mc_global"
- c:identifier="g_inet_address_get_is_mc_global"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a global multicast address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a global multicast address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_mc_link_local"
- c:identifier="g_inet_address_get_is_mc_link_local"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a link-local multicast address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a link-local multicast address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_mc_node_local"
- c:identifier="g_inet_address_get_is_mc_node_local"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a node-local multicast address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a node-local multicast address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_mc_org_local"
- c:identifier="g_inet_address_get_is_mc_org_local"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is an organization-local multicast address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is an organization-local multicast address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_mc_site_local"
- c:identifier="g_inet_address_get_is_mc_site_local"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a site-local multicast address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a site-local multicast address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_multicast"
- c:identifier="g_inet_address_get_is_multicast"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a multicast address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a multicast address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_site_local"
- c:identifier="g_inet_address_get_is_site_local"
- version="2.22">
- <doc xml:space="preserve">Tests whether @address is a site-local address such as 10.0.0.1
- (that is, the address identifies a host on a local network that can
- not be reached directly from the Internet, but which may have
- outgoing Internet connectivity via a NAT or firewall).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @address is a site-local address.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_native_size"
- c:identifier="g_inet_address_get_native_size"
- version="2.22">
- <doc xml:space="preserve">Gets the size of the native raw binary address for @address. This
- is the size of the data that you get from g_inet_address_to_bytes().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes used for the native version of @address.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_bytes"
- c:identifier="g_inet_address_to_bytes"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Gets the raw binary address data from @address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a pointer to an internal array of the bytes in @address,
- which should not be modified, stored, or freed. The size of this
- array can be gotten with g_inet_address_get_native_size().</doc>
- <type name="guint8" c:type="const guint8*"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="g_inet_address_to_string"
- version="2.22">
- <doc xml:space="preserve">Converts @address to string form.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a representation of @address as a string, which should be
- freed after use.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="bytes"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="family"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SocketFamily"/>
- </property>
- <property name="is-any" version="2.22" transfer-ownership="none">
- <doc xml:space="preserve">Whether this is the "any" address for its family.
- See g_inet_address_get_is_any().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-link-local" version="2.22" transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a link-local address.
- See g_inet_address_get_is_link_local().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-loopback" version="2.22" transfer-ownership="none">
- <doc xml:space="preserve">Whether this is the loopback address for its family.
- See g_inet_address_get_is_loopback().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-mc-global" version="2.22" transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a global multicast address.
- See g_inet_address_get_is_mc_global().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-mc-link-local"
- version="2.22"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a link-local multicast address.
- See g_inet_address_get_is_mc_link_local().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-mc-node-local"
- version="2.22"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a node-local multicast address.
- See g_inet_address_get_is_mc_node_local().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-mc-org-local"
- version="2.22"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether this is an organization-local multicast address.
- See g_inet_address_get_is_mc_org_local().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-mc-site-local"
- version="2.22"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a site-local multicast address.
- See g_inet_address_get_is_mc_site_local().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-multicast" version="2.22" transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a multicast address.
- See g_inet_address_get_is_multicast().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="is-site-local" version="2.22" transfer-ownership="none">
- <doc xml:space="preserve">Whether this is a site-local address.
- See g_inet_address_get_is_loopback().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="InetAddressPrivate" c:type="GInetAddressPrivate*"/>
- </field>
- </class>
- <record name="InetAddressClass"
- c:type="GInetAddressClass"
- glib:is-gtype-struct-for="InetAddress">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="to_string">
- <callback name="to_string">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a representation of @address as a string, which should be
- freed after use.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="to_bytes">
- <callback name="to_bytes">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a pointer to an internal array of the bytes in @address,
- which should not be modified, stored, or freed. The size of this
- array can be gotten with g_inet_address_get_native_size().</doc>
- <type name="guint8" c:type="const guint8*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="InetAddressMask"
- c:symbol-prefix="inet_address_mask"
- c:type="GInetAddressMask"
- version="2.32"
- parent="GObject.Object"
- glib:type-name="GInetAddressMask"
- glib:get-type="g_inet_address_mask_get_type"
- glib:type-struct="InetAddressMaskClass">
- <doc xml:space="preserve">#GInetAddressMask represents a range of IPv4 or IPv6 addresses
- described by a base address and a length indicating how many bits
- of the base address are relevant for matching purposes. These are
- often given in string form. Eg, "10.0.0.0/8", or "fe80::/10".</doc>
- <implements name="Initable"/>
- <constructor name="new"
- c:identifier="g_inet_address_mask_new"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Creates a new #GInetAddressMask representing all addresses whose
- first @length bits match @addr.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetAddressMask, or %NULL on error</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </return-value>
- <parameters>
- <parameter name="addr" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">number of bits of @addr to use</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_string"
- c:identifier="g_inet_address_mask_new_from_string"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Parses @mask_string as an IP address and (optional) length, and
- creates a new #GInetAddressMask. The length, if present, is
- delimited by a "/". If it is not present, then the length is
- assumed to be the full length of the address.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetAddressMask corresponding to @string, or %NULL
- on error.</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </return-value>
- <parameters>
- <parameter name="mask_string" transfer-ownership="none">
- <doc xml:space="preserve">an IP address or address/length string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="equal"
- c:identifier="g_inet_address_mask_equal"
- version="2.32">
- <doc xml:space="preserve">Tests if @mask and @mask2 are the same mask.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @mask and @mask2 are the same mask</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </instance-parameter>
- <parameter name="mask2" transfer-ownership="none">
- <doc xml:space="preserve">another #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_address"
- c:identifier="g_inet_address_mask_get_address"
- version="2.32">
- <doc xml:space="preserve">Gets @mask's base address</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@mask's base address</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_family"
- c:identifier="g_inet_address_mask_get_family"
- version="2.32">
- <doc xml:space="preserve">Gets the #GSocketFamily of @mask's address</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GSocketFamily of @mask's address</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <instance-parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_length"
- c:identifier="g_inet_address_mask_get_length"
- version="2.32">
- <doc xml:space="preserve">Gets @mask's length</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@mask's length</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="matches"
- c:identifier="g_inet_address_mask_matches"
- version="2.32">
- <doc xml:space="preserve">Tests if @address falls within the range described by @mask.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @address falls within the range described by
- @mask.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="g_inet_address_mask_to_string"
- version="2.32">
- <doc xml:space="preserve">Converts @mask back to its corresponding string form.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string corresponding to @mask.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddressMask</doc>
- <type name="InetAddressMask" c:type="GInetAddressMask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="address" writable="1" transfer-ownership="none">
- <type name="InetAddress"/>
- </property>
- <property name="family" transfer-ownership="none">
- <type name="SocketFamily"/>
- </property>
- <property name="length" writable="1" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="InetAddressMaskPrivate" c:type="GInetAddressMaskPrivate*"/>
- </field>
- </class>
- <record name="InetAddressMaskClass"
- c:type="GInetAddressMaskClass"
- glib:is-gtype-struct-for="InetAddressMask">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <record name="InetAddressMaskPrivate"
- c:type="GInetAddressMaskPrivate"
- disguised="1">
- </record>
- <record name="InetAddressPrivate"
- c:type="GInetAddressPrivate"
- disguised="1">
- </record>
- <class name="InetSocketAddress"
- c:symbol-prefix="inet_socket_address"
- c:type="GInetSocketAddress"
- parent="SocketAddress"
- glib:type-name="GInetSocketAddress"
- glib:get-type="g_inet_socket_address_get_type"
- glib:type-struct="InetSocketAddressClass">
- <doc xml:space="preserve">An IPv4 or IPv6 socket address; that is, the combination of a
- #GInetAddress and a port number.</doc>
- <implements name="SocketConnectable"/>
- <constructor name="new"
- c:identifier="g_inet_socket_address_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GInetSocketAddress for @address and @port.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">a port number</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_string"
- c:identifier="g_inet_socket_address_new_from_string"
- version="2.40">
- <doc xml:space="preserve">Creates a new #GInetSocketAddress for @address and @port.
- If @address is an IPv6 address, it can also contain a scope ID
- (separated from the address by a "<literal>%</literal>").</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInetSocketAddress, or %NULL if @address cannot be
- parsed.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the string form of an IP address</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">a port number</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_address"
- c:identifier="g_inet_socket_address_get_address"
- version="2.22">
- <doc xml:space="preserve">Gets @address's #GInetAddress.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GInetAddress for @address, which must be
- g_object_ref()'d if it will be stored</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetSocketAddress</doc>
- <type name="InetSocketAddress" c:type="GInetSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flowinfo"
- c:identifier="g_inet_socket_address_get_flowinfo"
- version="2.32">
- <doc xml:space="preserve">Gets the `sin6_flowinfo` field from @address,
- which must be an IPv6 address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the flowinfo field</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a %G_SOCKET_FAMILY_IPV6 #GInetSocketAddress</doc>
- <type name="InetSocketAddress" c:type="GInetSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_port"
- c:identifier="g_inet_socket_address_get_port"
- version="2.22">
- <doc xml:space="preserve">Gets @address's port.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the port for @address</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetSocketAddress</doc>
- <type name="InetSocketAddress" c:type="GInetSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_scope_id"
- c:identifier="g_inet_socket_address_get_scope_id"
- version="2.32">
- <doc xml:space="preserve">Gets the `sin6_scope_id` field from @address,
- which must be an IPv6 address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the scope id field</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a %G_SOCKET_FAMILY_IPV6 #GInetAddress</doc>
- <type name="InetSocketAddress" c:type="GInetSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="address"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="InetAddress"/>
- </property>
- <property name="flowinfo"
- version="2.32"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The `sin6_flowinfo` field, for IPv6 addresses.</doc>
- <type name="guint" c:type="guint"/>
- </property>
- <property name="port"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <property name="scope-id"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <field name="parent_instance">
- <type name="SocketAddress" c:type="GSocketAddress"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="InetSocketAddressPrivate"
- c:type="GInetSocketAddressPrivate*"/>
- </field>
- </class>
- <record name="InetSocketAddressClass"
- c:type="GInetSocketAddressClass"
- glib:is-gtype-struct-for="InetSocketAddress">
- <field name="parent_class">
- <type name="SocketAddressClass" c:type="GSocketAddressClass"/>
- </field>
- </record>
- <record name="InetSocketAddressPrivate"
- c:type="GInetSocketAddressPrivate"
- disguised="1">
- </record>
- <interface name="Initable"
- c:symbol-prefix="initable"
- c:type="GInitable"
- version="2.22"
- glib:type-name="GInitable"
- glib:get-type="g_initable_get_type"
- glib:type-struct="InitableIface">
- <doc xml:space="preserve">#GInitable is implemented by objects that can fail during
- initialization. If an object implements this interface then
- it must be initialized as the first thing after construction,
- either via g_initable_init() or g_async_initable_init_async()
- (the latter is only available if it also implements #GAsyncInitable).
- If the object is not initialized, or initialization returns with an
- error, then all operations on the object except g_object_ref() and
- g_object_unref() are considered to be invalid, and have undefined
- behaviour. They will often fail with g_critical() or g_warning(), but
- this must not be relied on.
- Users of objects implementing this are not intended to use
- the interface method directly, instead it will be used automatically
- in various ways. For C applications you generally just call
- g_initable_new() directly, or indirectly via a foo_thing_new() wrapper.
- This will call g_initable_init() under the cover, returning %NULL and
- setting a #GError on failure (at which point the instance is
- unreferenced).
- For bindings in languages where the native constructor supports
- exceptions the binding could check for objects implemention %GInitable
- during normal construction and automatically initialize them, throwing
- an exception on failure.</doc>
- <function name="new"
- c:identifier="g_initable_new"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Helper function for constructing #GInitable object. This is
- similar to g_object_new() but also initializes the object
- and returns %NULL, setting an error on failure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated
- #GObject, or %NULL on error</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">a #GError location to store the error occurring, or %NULL to
- ignore.</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="first_property_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the first property, or %NULL if no
- properties</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">the value if the first property, followed by and other property
- value pairs, and ended by %NULL.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="new_valist"
- c:identifier="g_initable_new_valist"
- version="2.22"
- introspectable="0"
- throws="1">
- <doc xml:space="preserve">Helper function for constructing #GInitable object. This is
- similar to g_object_new_valist() but also initializes the object
- and returns %NULL, setting an error on failure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated
- #GObject, or %NULL on error</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the first property, followed by
- the value, and other property value pairs, and ended by %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="var_args" transfer-ownership="none">
- <doc xml:space="preserve">The var args list generated from @first_property_name.</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="newv"
- c:identifier="g_initable_newv"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Helper function for constructing #GInitable object. This is
- similar to g_object_newv() but also initializes the object
- and returns %NULL, setting an error on failure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated
- #GObject, or %NULL on error</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="n_parameters" transfer-ownership="none">
- <doc xml:space="preserve">the number of parameters in @parameters</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">the parameters to use to construct the object</doc>
- <array length="1" zero-terminated="0" c:type="GParameter*">
- <type name="GObject.Parameter" c:type="GParameter"/>
- </array>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="init" invoker="init" version="2.22" throws="1">
- <doc xml:space="preserve">Initializes the object implementing the interface.
- The object must be initialized before any real use after initial
- construction, either with this function or g_async_initable_init_async().
- Implementations may also support cancellation. If @cancellable is not %NULL,
- then initialization can be cancelled by triggering the cancellable object
- from another thread. If the operation was cancelled, the error
- %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and
- the object doesn't support cancellable initialization the error
- %G_IO_ERROR_NOT_SUPPORTED will be returned.
- If the object is not initialized, or initialization returns with an
- error, then all operations on the object except g_object_ref() and
- g_object_unref() are considered to be invalid, and have undefined
- behaviour. See the [introduction][ginitable] for more details.
- Implementations of this method must be idempotent, i.e. multiple calls
- to this function with the same argument should return the same results.
- Only the first call initializes the object, further calls return the result
- of the first call. This is so that it's safe to implement the singleton
- pattern in the GObject constructor function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function will
- return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GInitable.</doc>
- <type name="Initable" c:type="GInitable*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="init"
- c:identifier="g_initable_init"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Initializes the object implementing the interface.
- The object must be initialized before any real use after initial
- construction, either with this function or g_async_initable_init_async().
- Implementations may also support cancellation. If @cancellable is not %NULL,
- then initialization can be cancelled by triggering the cancellable object
- from another thread. If the operation was cancelled, the error
- %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and
- the object doesn't support cancellable initialization the error
- %G_IO_ERROR_NOT_SUPPORTED will be returned.
- If the object is not initialized, or initialization returns with an
- error, then all operations on the object except g_object_ref() and
- g_object_unref() are considered to be invalid, and have undefined
- behaviour. See the [introduction][ginitable] for more details.
- Implementations of this method must be idempotent, i.e. multiple calls
- to this function with the same argument should return the same results.
- Only the first call initializes the object, further calls return the result
- of the first call. This is so that it's safe to implement the singleton
- pattern in the GObject constructor function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function will
- return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GInitable.</doc>
- <type name="Initable" c:type="GInitable*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="InitableIface"
- c:type="GInitableIface"
- glib:is-gtype-struct-for="Initable"
- version="2.22">
- <doc xml:space="preserve">Provides an interface for initializing object such that initialization
- may fail.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="init">
- <callback name="init" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error has occurred, this function will
- return %FALSE and set @error appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="initable" transfer-ownership="none">
- <doc xml:space="preserve">a #GInitable.</doc>
- <type name="Initable" c:type="GInitable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="InputMessage" c:type="GInputMessage" version="2.48">
- <doc xml:space="preserve">Structure used for scatter/gather data input when receiving multiple
- messages or packets in one go. You generally pass in an array of empty
- #GInputVectors and the operation will use all the buffers as if they
- were one buffer, and will set @bytes_received to the total number of bytes
- received across all #GInputVectors.
- This structure closely mirrors `struct mmsghdr` and `struct msghdr` from
- the POSIX sockets API (see `man 2 recvmmsg`).
- If @address is non-%NULL then it is set to the source address the message
- was received from, and the caller must free it afterwards.
- If @control_messages is non-%NULL then it is set to an array of control
- messages received with the message (if any), and the caller must free it
- afterwards. @num_control_messages is set to the number of elements in
- this array, which may be zero.
- Flags relevant to this message will be returned in @flags. For example,
- `MSG_EOR` or `MSG_TRUNC`.</doc>
- <field name="address" writable="1">
- <doc xml:space="preserve">return location
- for a #GSocketAddress, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress**"/>
- </field>
- <field name="vectors" writable="1">
- <doc xml:space="preserve">pointer to an
- array of input vectors</doc>
- <array length="2" zero-terminated="0" c:type="GInputVector*">
- <type name="InputVector" c:type="GInputVector"/>
- </array>
- </field>
- <field name="num_vectors" writable="1">
- <doc xml:space="preserve">the number of input vectors pointed to by @vectors</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="bytes_received" writable="1">
- <doc xml:space="preserve">will be set to the number of bytes that have been
- received</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">collection of #GSocketMsgFlags for the received message,
- outputted by the call</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="control_messages" writable="1">
- <doc xml:space="preserve">return location for a
- caller-allocated array of #GSocketControlMessages, or %NULL</doc>
- <array length="6"
- zero-terminated="0"
- c:type="GSocketControlMessage***">
- <type name="SocketControlMessage" c:type="GSocketControlMessage**"/>
- </array>
- </field>
- <field name="num_control_messages" writable="1">
- <doc xml:space="preserve">return location for the number of
- elements in @control_messages</doc>
- <type name="guint" c:type="guint*"/>
- </field>
- </record>
- <class name="InputStream"
- c:symbol-prefix="input_stream"
- c:type="GInputStream"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GInputStream"
- glib:get-type="g_input_stream_get_type"
- glib:type-struct="InputStreamClass">
- <doc xml:space="preserve">#GInputStream has functions to read from a stream (g_input_stream_read()),
- to close a stream (g_input_stream_close()) and to skip some content
- (g_input_stream_skip()).
- To copy the content of an input stream to an output stream without
- manually handling the reads and writes, use g_output_stream_splice().
- See the documentation for #GIOStream for details of thread safety of
- streaming APIs.
- All of these functions have async variants too.</doc>
- <virtual-method name="close_async" invoker="close_async">
- <doc xml:space="preserve">Requests an asynchronous closes of the stream, releasing resources related to it.
- When the operation is finished @callback will be called.
- You can then call g_input_stream_close_finish() to get the result of the
- operation.
- For behaviour details see g_input_stream_close().
- The asyncronous methods have a default fallback that uses threads to implement
- asynchronicity, so they are optional for inheriting classes. However, if you
- override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_finish" invoker="close_finish" throws="1">
- <doc xml:space="preserve">Finishes closing a stream asynchronously, started from g_input_stream_close_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream was closed successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_async" invoker="read_async">
- <doc xml:space="preserve">Request an asynchronous read of @count bytes from the stream into the buffer
- starting at @buffer. When the operation is finished @callback will be called.
- You can then call g_input_stream_read_finish() to get the result of the
- operation.
- During an async request no other sync and async calls are allowed on @stream, and will
- result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes read into the buffer will be passed to the
- callback. It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file, but generally we try to read
- as many bytes as requested. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- Any outstanding i/o request with higher priority (lower numerical value) will
- be executed before an outstanding request with lower priority. Default
- priority is %G_PRIORITY_DEFAULT.
- The asyncronous methods have a default fallback that uses threads to implement
- asynchronicity, so they are optional for inheriting classes. However, if you
- override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least count bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority]
- of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_finish" invoker="read_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream read operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of bytes read in, or -1 on error, or 0 on end of file.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="gpointer" c:type="void*"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="skip" invoker="skip" throws="1">
- <doc xml:space="preserve">Tries to skip @count bytes from the stream. Will block during the operation.
- This is identical to g_input_stream_read(), from a behaviour standpoint,
- but the bytes that are skipped are not returned to the user. Some
- streams have an implementation that is more efficient than reading the data.
- This function is optional for inherited classes, as the default implementation
- emulates it using read.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes skipped, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be skipped from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="skip_async" invoker="skip_async">
- <doc xml:space="preserve">Request an asynchronous skip of @count bytes from the stream.
- When the operation is finished @callback will be called.
- You can then call g_input_stream_skip_finish() to get the result
- of the operation.
- During an async request no other sync and async calls are allowed,
- and will result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes skipped will be passed to the callback.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file, but generally we try to skip
- as many bytes as requested. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- Any outstanding i/o request with higher priority (lower numerical value)
- will be executed before an outstanding request with lower priority.
- Default priority is %G_PRIORITY_DEFAULT.
- The asynchronous methods have a default fallback that uses threads to
- implement asynchronicity, so they are optional for inheriting classes.
- However, if you override one, you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be skipped from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="skip_finish" invoker="skip_finish" throws="1">
- <doc xml:space="preserve">Finishes a stream skip operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the size of the bytes skipped, or %-1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="clear_pending" c:identifier="g_input_stream_clear_pending">
- <doc xml:space="preserve">Clears the pending flag on @stream.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">input stream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="close" c:identifier="g_input_stream_close" throws="1">
- <doc xml:space="preserve">Closes the stream, releasing resources related to it.
- Once the stream is closed, all other operations will return %G_IO_ERROR_CLOSED.
- Closing a stream multiple times will not return an error.
- Streams will be automatically closed when the last reference
- is dropped, but you might want to call this function to make sure
- resources are released as early as possible.
- Some streams might keep the backing store of the stream (e.g. a file descriptor)
- open after the stream is closed. See the documentation for the individual
- stream for details.
- On failure the first error that happened will be reported, but the close
- operation will finish as much as possible. A stream that failed to
- close will still return %G_IO_ERROR_CLOSED for all operations. Still, it
- is important to check and report the error to the user.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- Cancelling a close will still leave the stream closed, but some streams
- can use a faster close that doesn't block to e.g. check errors.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_async" c:identifier="g_input_stream_close_async">
- <doc xml:space="preserve">Requests an asynchronous closes of the stream, releasing resources related to it.
- When the operation is finished @callback will be called.
- You can then call g_input_stream_close_finish() to get the result of the
- operation.
- For behaviour details see g_input_stream_close().
- The asyncronous methods have a default fallback that uses threads to implement
- asynchronicity, so they are optional for inheriting classes. However, if you
- override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_finish"
- c:identifier="g_input_stream_close_finish"
- throws="1">
- <doc xml:space="preserve">Finishes closing a stream asynchronously, started from g_input_stream_close_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream was closed successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_pending" c:identifier="g_input_stream_has_pending">
- <doc xml:space="preserve">Checks if an input stream has pending actions.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream has pending actions.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">input stream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closed" c:identifier="g_input_stream_is_closed">
- <doc xml:space="preserve">Checks if an input stream is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream is closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">input stream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="read" c:identifier="g_input_stream_read" throws="1">
- <doc xml:space="preserve">Tries to read @count bytes from the stream into the buffer starting at
- @buffer. Will block during this read.
- If count is zero returns zero and does nothing. A value of @count
- larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes read into the buffer is returned.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- The returned @buffer is not a nul-terminated string, it can contain nul bytes
- at any position, and this function doesn't nul-terminate the @buffer.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes read, or -1 on error, or 0 on end of file.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least count bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_all"
- c:identifier="g_input_stream_read_all"
- throws="1">
- <doc xml:space="preserve">Tries to read @count bytes from the stream into the buffer starting at
- @buffer. Will block during this read.
- This function is similar to g_input_stream_read(), except it tries to
- read as many bytes as requested, only stopping on an error or end of stream.
- On a successful read of @count bytes, or if we reached the end of the
- stream, %TRUE is returned, and @bytes_read is set to the number of bytes
- read into @buffer.
- If there is an error during the operation %FALSE is returned and @error
- is set to indicate the error status.
- As a special exception to the normal conventions for functions that
- use #GError, if this function returns %FALSE (and sets @error) then
- @bytes_read will be set to the number of bytes that were successfully
- read before the error was encountered. This functionality is only
- available from C. If you need it from another language then you must
- write your own loop around g_input_stream_read().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least count bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="bytes_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was read from the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_all_async"
- c:identifier="g_input_stream_read_all_async"
- version="2.44">
- <doc xml:space="preserve">Request an asynchronous read of @count bytes from the stream into the
- buffer starting at @buffer.
- This is the asynchronous equivalent of g_input_stream_read_all().
- Call g_input_stream_read_all_finish() to collect the result.
- Any outstanding I/O request with higher priority (lower numerical
- value) will be executed before an outstanding request with lower
- priority. Default priority is %G_PRIORITY_DEFAULT.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least count bytes long)</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_all_finish"
- c:identifier="g_input_stream_read_all_finish"
- version="2.44"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream read operation started with
- g_input_stream_read_all_async().
- As a special exception to the normal conventions for functions that
- use #GError, if this function returns %FALSE (and sets @error) then
- @bytes_read will be set to the number of bytes that were successfully
- read before the error was encountered. This functionality is only
- available from C. If you need it from another language then you must
- write your own loop around g_input_stream_read_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="bytes_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was read from the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_async" c:identifier="g_input_stream_read_async">
- <doc xml:space="preserve">Request an asynchronous read of @count bytes from the stream into the buffer
- starting at @buffer. When the operation is finished @callback will be called.
- You can then call g_input_stream_read_finish() to get the result of the
- operation.
- During an async request no other sync and async calls are allowed on @stream, and will
- result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes read into the buffer will be passed to the
- callback. It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file, but generally we try to read
- as many bytes as requested. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- Any outstanding i/o request with higher priority (lower numerical value) will
- be executed before an outstanding request with lower priority. Default
- priority is %G_PRIORITY_DEFAULT.
- The asyncronous methods have a default fallback that uses threads to implement
- asynchronicity, so they are optional for inheriting classes. However, if you
- override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least count bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority]
- of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_bytes"
- c:identifier="g_input_stream_read_bytes"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Like g_input_stream_read(), this tries to read @count bytes from
- the stream in a blocking fashion. However, rather than reading into
- a user-supplied buffer, this will create a new #GBytes containing
- the data that was read. This may be easier to use from language
- bindings.
- If count is zero, returns a zero-length #GBytes and does nothing. A
- value of @count larger than %G_MAXSSIZE will cause a
- %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, a new #GBytes is returned. It is not an error if the
- size of this object is not the same as the requested size, as it
- can happen e.g. near the end of a file. A zero-length #GBytes is
- returned on end of file (or if @count is zero), but never
- otherwise.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error %NULL is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GBytes, or %NULL on error</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">maximum number of bytes that will be read from the stream. Common
- values include 4096 and 8192.</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_bytes_async"
- c:identifier="g_input_stream_read_bytes_async"
- version="2.34">
- <doc xml:space="preserve">Request an asynchronous read of @count bytes from the stream into a
- new #GBytes. When the operation is finished @callback will be
- called. You can then call g_input_stream_read_bytes_finish() to get the
- result of the operation.
- During an async request no other sync and async calls are allowed
- on @stream, and will result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a
- %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the new #GBytes will be passed to the callback. It is
- not an error if this is smaller than the requested size, as it can
- happen e.g. near the end of a file, but generally we try to read as
- many bytes as requested. Zero is returned on end of file (or if
- @count is zero), but never otherwise.
- Any outstanding I/O request with higher priority (lower numerical
- value) will be executed before an outstanding request with lower
- priority. Default priority is %G_PRIORITY_DEFAULT.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_bytes_finish"
- c:identifier="g_input_stream_read_bytes_finish"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream read-into-#GBytes operation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly-allocated #GBytes, or %NULL on error</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="read_finish"
- c:identifier="g_input_stream_read_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream read operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of bytes read in, or -1 on error, or 0 on end of file.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_pending"
- c:identifier="g_input_stream_set_pending"
- throws="1">
- <doc xml:space="preserve">Sets @stream to have actions pending. If the pending flag is
- already set or @stream is closed, it will return %FALSE and set
- @error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if pending was previously unset and is now set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">input stream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="skip" c:identifier="g_input_stream_skip" throws="1">
- <doc xml:space="preserve">Tries to skip @count bytes from the stream. Will block during the operation.
- This is identical to g_input_stream_read(), from a behaviour standpoint,
- but the bytes that are skipped are not returned to the user. Some
- streams have an implementation that is more efficient than reading the data.
- This function is optional for inherited classes, as the default implementation
- emulates it using read.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes skipped, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be skipped from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="skip_async" c:identifier="g_input_stream_skip_async">
- <doc xml:space="preserve">Request an asynchronous skip of @count bytes from the stream.
- When the operation is finished @callback will be called.
- You can then call g_input_stream_skip_finish() to get the result
- of the operation.
- During an async request no other sync and async calls are allowed,
- and will result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes skipped will be passed to the callback.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. near the end of a file, but generally we try to skip
- as many bytes as requested. Zero is returned on end of file
- (or if @count is zero), but never otherwise.
- Any outstanding i/o request with higher priority (lower numerical value)
- will be executed before an outstanding request with lower priority.
- Default priority is %G_PRIORITY_DEFAULT.
- The asynchronous methods have a default fallback that uses threads to
- implement asynchronicity, so they are optional for inheriting classes.
- However, if you override one, you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be skipped from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="skip_finish"
- c:identifier="g_input_stream_skip_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a stream skip operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the size of the bytes skipped, or %-1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="InputStreamPrivate" c:type="GInputStreamPrivate*"/>
- </field>
- </class>
- <record name="InputStreamClass"
- c:type="GInputStreamClass"
- glib:is-gtype-struct-for="InputStream">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="read_fn">
- <callback name="read_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="gpointer" c:type="void*"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="skip">
- <callback name="skip" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes skipped, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be skipped from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_fn">
- <callback name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_async">
- <callback name="read_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least count bytes long).</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be read from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority]
- of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_finish">
- <callback name="read_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of bytes read in, or -1 on error, or 0 on end of file.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="skip_async">
- <callback name="skip_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that will be skipped from the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="skip_finish">
- <callback name="skip_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the size of the bytes skipped, or %-1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_async">
- <callback name="close_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_finish">
- <callback name="close_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream was closed successfully.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="InputStreamPrivate"
- c:type="GInputStreamPrivate"
- disguised="1">
- </record>
- <record name="InputVector" c:type="GInputVector" version="2.22">
- <doc xml:space="preserve">Structure used for scatter/gather data input.
- You generally pass in an array of #GInputVectors
- and the operation will store the read data starting in the
- first buffer, switching to the next as needed.</doc>
- <field name="buffer" writable="1">
- <doc xml:space="preserve">Pointer to a buffer where data will be written.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the available size in @buffer.</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- </record>
- <interface name="ListModel"
- c:symbol-prefix="list_model"
- c:type="GListModel"
- glib:type-name="GListModel"
- glib:get-type="g_list_model_get_type"
- glib:type-struct="ListModelInterface">
- <doc xml:space="preserve">#GListModel is an interface that represents a mutable list of
- #GObjects. Its main intention is as a model for various widgets in
- user interfaces, such as list views, but it can also be used as a
- convenient method of returning lists of data, with support for
- updates.
- Each object in the list may also report changes in itself via some
- mechanism (normally the #GObject::notify signal). Taken together
- with the #GListModel::items-changed signal, this provides for a list
- that can change its membership, and in which the members can change
- their individual properties.
- A good example would be the list of visible wireless network access
- points, where each access point can report dynamic properties such as
- signal strength.
- It is important to note that the #GListModel itself does not report
- changes to the individual items. It only reports changes to the list
- membership. If you want to observe changes to the objects themselves
- then you need to connect signals to the objects that you are
- interested in.
- All items in a #GListModel are of (or derived from) the same type.
- g_list_model_get_item_type() returns that type. The type may be an
- interface, in which case all objects in the list must implement it.
- The semantics are close to that of an array:
- g_list_model_get_n_items() returns the number of items in the list and
- g_list_model_get_item() returns an item at a (0-based) position. In
- order to allow implementations to calculate the list length lazily,
- you can also iterate over items: starting from 0, repeatedly call
- g_list_model_get_item() until it returns %NULL.
- An implementation may create objects lazily, but must take care to
- return the same object for a given position until all references to
- it are gone.
- On the other side, a consumer is expected only to hold references on
- objects that are currently "user visible", in order to faciliate the
- maximum level of laziness in the implementation of the list and to
- reduce the required number of signal connections at a given time.
- This interface is intended only to be used from a single thread. The
- thread in which it is appropriate to use it depends on the particular
- implementation, but typically it will be from the thread that owns
- the [thread-default main context][g-main-context-push-thread-default]
- in effect at the time that the model was created.</doc>
- <virtual-method name="get_item">
- <return-value transfer-ownership="none" nullable="1">
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_item_type"
- invoker="get_item_type"
- version="2.44">
- <doc xml:space="preserve">Gets the type of the items in @list. All items returned from
- g_list_model_get_type() are of that type or a subtype, or are an
- implementation of that interface.
- The item type of a #GListModel can not change during the life of the
- model.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of the items contained in @list.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_n_items" invoker="get_n_items" version="2.44">
- <doc xml:space="preserve">Gets the number of items in @list.
- Depending on the model implementation, calling this function may be
- less efficient than iterating the list with increasing values for
- @position until g_list_model_get_item() returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of items in @list.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="get_item"
- c:identifier="g_list_model_get_item"
- shadowed-by="get_object"
- version="2.44"
- introspectable="0">
- <doc xml:space="preserve">Get the item at @position. If @position is greater than the number of
- items in @list, %NULL is returned.
- %NULL is never returned for an index that is smaller than the length
- of the list. See g_list_model_get_n_items().</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the item at @position.</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position of the item to fetch</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_item_type"
- c:identifier="g_list_model_get_item_type"
- version="2.44">
- <doc xml:space="preserve">Gets the type of the items in @list. All items returned from
- g_list_model_get_type() are of that type or a subtype, or are an
- implementation of that interface.
- The item type of a #GListModel can not change during the life of the
- model.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of the items contained in @list.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_n_items"
- c:identifier="g_list_model_get_n_items"
- version="2.44">
- <doc xml:space="preserve">Gets the number of items in @list.
- Depending on the model implementation, calling this function may be
- less efficient than iterating the list with increasing values for
- @position until g_list_model_get_item() returns %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of items in @list.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_object"
- c:identifier="g_list_model_get_object"
- shadows="get_item"
- version="2.44">
- <doc xml:space="preserve">Get the item at @position. If @position is greater than the number of
- items in @list, %NULL is returned.
- %NULL is never returned for an index that is smaller than the length
- of the list. See g_list_model_get_n_items().</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the object at @position.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position of the item to fetch</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="items_changed"
- c:identifier="g_list_model_items_changed"
- version="2.44">
- <doc xml:space="preserve">Emits the #GListModel::items-changed signal on @list.
- This function should only be called by classes implementing
- #GListModel. It has to be called after the internal representation
- of @list has been updated, because handlers connected to this signal
- might query the new state of the list.
- Implementations must only make changes to the model (as visible to
- its consumer) in places that will not cause problems for that
- consumer. For models that are driven directly by a write API (such
- as #GListStore), changes can be reported in response to uses of that
- API. For models that represent remote data, changes should only be
- made from a fresh mainloop dispatch. It is particularly not
- permitted to make changes in response to a call to the #GListModel
- consumer API.
- Stated another way: in general, it is assumed that code making a
- series of accesses to the model via the API, without returning to the
- mainloop, and without calling other code, will continue to view the
- same contents of the model.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which @list changed</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="removed" transfer-ownership="none">
- <doc xml:space="preserve">the number of items removed</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="added" transfer-ownership="none">
- <doc xml:space="preserve">the number of items added</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="items-changed" when="last" version="2.44">
- <doc xml:space="preserve">This signal is emitted whenever items were added or removed to
- @list. At @position, @removed items were removed and @added items
- were added in their place.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which @list changed</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="removed" transfer-ownership="none">
- <doc xml:space="preserve">the number of items removed</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="added" transfer-ownership="none">
- <doc xml:space="preserve">the number of items added</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="ListModelInterface"
- c:type="GListModelInterface"
- glib:is-gtype-struct-for="ListModel"
- version="2.44">
- <doc xml:space="preserve">The virtual function table for #GListModel.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">parent #GTypeInterface</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_item_type">
- <callback name="get_item_type">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of the items contained in @list.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_n_items">
- <callback name="get_n_items">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of items in @list.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GListModel</doc>
- <type name="ListModel" c:type="GListModel*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_item">
- <callback name="get_item">
- <return-value transfer-ownership="none" nullable="1">
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="ListModel" c:type="GListModel*"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="ListStore"
- c:symbol-prefix="list_store"
- c:type="GListStore"
- parent="GObject.Object"
- glib:type-name="GListStore"
- glib:get-type="g_list_store_get_type"
- glib:type-struct="ListStoreClass">
- <doc xml:space="preserve">#GListStore is a simple implementation of #GListModel that stores all
- items in memory.
- It provides insertions, deletions, and lookups in logarithmic time
- with a fast path for the common case of iterating the list linearly.</doc>
- <implements name="ListModel"/>
- <constructor name="new" c:identifier="g_list_store_new" version="2.44">
- <doc xml:space="preserve">Creates a new #GListStore with items of type @item_type. @item_type
- must be a subclass of #GObject.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </return-value>
- <parameters>
- <parameter name="item_type" transfer-ownership="none">
- <doc xml:space="preserve">the #GType of items in the list</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append" c:identifier="g_list_store_append" version="2.44">
- <doc xml:space="preserve">Appends @item to @store. @item must be of type #GListStore:item-type.
- This function takes a ref on @item.
- Use g_list_store_splice() to append multiple items at the same time
- efficiently.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">the new item</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert" c:identifier="g_list_store_insert" version="2.44">
- <doc xml:space="preserve">Inserts @item into @store at @position. @item must be of type
- #GListStore:item-type or derived from it. @position must be smaller
- than the length of the list, or equal to it to append.
- This function takes a ref on @item.
- Use g_list_store_splice() to insert multiple items at the same time
- efficiently.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which to insert the new item</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">the new item</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert_sorted"
- c:identifier="g_list_store_insert_sorted"
- version="2.44">
- <doc xml:space="preserve">Inserts @item into @store at a position to be determined by the
- @compare_func.
- The list must already be sorted before calling this function or the
- result is undefined. Usually you would approach this by only ever
- inserting items by way of this function.
- This function takes a ref on @item.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the position at which @item was inserted</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">the new item</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="compare_func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <doc xml:space="preserve">pairwise comparison function for sorting</doc>
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for @compare_func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove" c:identifier="g_list_store_remove" version="2.44">
- <doc xml:space="preserve">Removes the item from @store that is at @position. @position must be
- smaller than the current length of the list.
- Use g_list_store_splice() to remove multiple items at the same time
- efficiently.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position of the item that is to be removed</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_all"
- c:identifier="g_list_store_remove_all"
- version="2.44">
- <doc xml:space="preserve">Removes all items from @store.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="sort" c:identifier="g_list_store_sort" version="2.46">
- <doc xml:space="preserve">Sort the items in @store according to @compare_func.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- <parameter name="compare_func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <doc xml:space="preserve">pairwise comparison function for sorting</doc>
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for @compare_func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="splice" c:identifier="g_list_store_splice" version="2.44">
- <doc xml:space="preserve">Changes @store by removing @n_removals items and adding @n_additions
- items to it. @additions must contain @n_additions items of type
- #GListStore:item-type. %NULL is not permitted.
- This function is more efficient than g_list_store_insert() and
- g_list_store_remove(), because it only emits
- #GListModel::items-changed once for the change.
- This function takes a ref on each item in @additions.
- The parameters @position and @n_removals must be correct (ie:
- @position + @n_removals must be less than or equal to the length of
- the list at the time this function is called).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="store" transfer-ownership="none">
- <doc xml:space="preserve">a #GListStore</doc>
- <type name="ListStore" c:type="GListStore*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which to make the change</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_removals" transfer-ownership="none">
- <doc xml:space="preserve">the number of items to remove</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="additions" transfer-ownership="none">
- <doc xml:space="preserve">the items to add</doc>
- <array length="3" zero-terminated="0" c:type="gpointer*">
- <type name="GObject.Object"/>
- </array>
- </parameter>
- <parameter name="n_additions" transfer-ownership="none">
- <doc xml:space="preserve">the number of items to add</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <property name="item-type"
- version="2.44"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The type of items contained in this list store. Items must be
- subclasses of #GObject.</doc>
- <type name="GType" c:type="GType"/>
- </property>
- </class>
- <record name="ListStoreClass"
- c:type="GListStoreClass"
- glib:is-gtype-struct-for="ListStore">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <interface name="LoadableIcon"
- c:symbol-prefix="loadable_icon"
- c:type="GLoadableIcon"
- glib:type-name="GLoadableIcon"
- glib:get-type="g_loadable_icon_get_type"
- glib:type-struct="LoadableIconIface">
- <doc xml:space="preserve">Extends the #GIcon interface and adds the ability to
- load icons from streams.</doc>
- <prerequisite name="Icon"/>
- <virtual-method name="load" invoker="load" throws="1">
- <doc xml:space="preserve">Loads a loadable icon. For the asynchronous version of this function,
- see g_loadable_icon_load_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream to read the icon from.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the type of the loaded
- icon, %NULL to ignore.</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to
- ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="load_async" invoker="load_async">
- <doc xml:space="preserve">Loads an icon asynchronously. To finish this function, see
- g_loadable_icon_load_finish(). For the synchronous, blocking
- version of this function, see g_loadable_icon_load().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="load_finish" invoker="load_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous icon load started in g_loadable_icon_load_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream to read the icon from.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the type of the loaded
- icon, %NULL to ignore.</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="load" c:identifier="g_loadable_icon_load" throws="1">
- <doc xml:space="preserve">Loads a loadable icon. For the asynchronous version of this function,
- see g_loadable_icon_load_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream to read the icon from.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the type of the loaded
- icon, %NULL to ignore.</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to
- ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="load_async" c:identifier="g_loadable_icon_load_async">
- <doc xml:space="preserve">Loads an icon asynchronously. To finish this function, see
- g_loadable_icon_load_finish(). For the synchronous, blocking
- version of this function, see g_loadable_icon_load().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="load_finish"
- c:identifier="g_loadable_icon_load_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous icon load started in g_loadable_icon_load_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream to read the icon from.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </instance-parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the type of the loaded
- icon, %NULL to ignore.</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="LoadableIconIface"
- c:type="GLoadableIconIface"
- glib:is-gtype-struct-for="LoadableIcon">
- <doc xml:space="preserve">Interface for icons that can be loaded as a stream.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="load">
- <callback name="load" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream to read the icon from.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the type of the loaded
- icon, %NULL to ignore.</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to
- ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="load_async">
- <callback name="load_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="load_finish">
- <callback name="load_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GInputStream to read the icon from.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GLoadableIcon.</doc>
- <type name="LoadableIcon" c:type="GLoadableIcon*"/>
- </parameter>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="type"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to store the type of the loaded
- icon, %NULL to ignore.</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <constant name="MENU_ATTRIBUTE_ACTION"
- value="action"
- c:type="G_MENU_ATTRIBUTE_ACTION"
- version="2.32">
- <doc xml:space="preserve">The menu item attribute which holds the action name of the item. Action
- names are namespaced with an identifier for the action group in which the
- action resides. For example, "win." for window-specific actions and "app."
- for application-wide actions.
- See also g_menu_model_get_item_attribute() and g_menu_item_set_attribute().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MENU_ATTRIBUTE_ACTION_NAMESPACE"
- value="action-namespace"
- c:type="G_MENU_ATTRIBUTE_ACTION_NAMESPACE"
- version="2.36">
- <doc xml:space="preserve">The menu item attribute that holds the namespace for all action names in
- menus that are linked from this item.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MENU_ATTRIBUTE_ICON"
- value="icon"
- c:type="G_MENU_ATTRIBUTE_ICON"
- version="2.38">
- <doc xml:space="preserve">The menu item attribute which holds the icon of the item.
- The icon is stored in the format returned by g_icon_serialize().
- This attribute is intended only to represent 'noun' icons such as
- favicons for a webpage, or application icons. It should not be used
- for 'verbs' (ie: stock icons).</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MENU_ATTRIBUTE_LABEL"
- value="label"
- c:type="G_MENU_ATTRIBUTE_LABEL"
- version="2.32">
- <doc xml:space="preserve">The menu item attribute which holds the label of the item.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MENU_ATTRIBUTE_TARGET"
- value="target"
- c:type="G_MENU_ATTRIBUTE_TARGET"
- version="2.32">
- <doc xml:space="preserve">The menu item attribute which holds the target with which the item's action
- will be activated.
- See also g_menu_item_set_action_and_target()</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MENU_LINK_SECTION"
- value="section"
- c:type="G_MENU_LINK_SECTION"
- version="2.32">
- <doc xml:space="preserve">The name of the link that associates a menu item with a section. The linked
- menu will usually be shown in place of the menu item, using the item's label
- as a header.
- See also g_menu_item_set_link().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="MENU_LINK_SUBMENU"
- value="submenu"
- c:type="G_MENU_LINK_SUBMENU"
- version="2.32">
- <doc xml:space="preserve">The name of the link that associates a menu item with a submenu.
- See also g_menu_item_set_link().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <class name="MemoryInputStream"
- c:symbol-prefix="memory_input_stream"
- c:type="GMemoryInputStream"
- parent="InputStream"
- glib:type-name="GMemoryInputStream"
- glib:get-type="g_memory_input_stream_get_type"
- glib:type-struct="MemoryInputStreamClass">
- <doc xml:space="preserve">#GMemoryInputStream is a class for using arbitrary
- memory chunks as input for GIO streaming input operations.
- As of GLib 2.34, #GMemoryInputStream implements
- #GPollableInputStream.</doc>
- <implements name="PollableInputStream"/>
- <implements name="Seekable"/>
- <constructor name="new" c:identifier="g_memory_input_stream_new">
- <doc xml:space="preserve">Creates a new empty #GMemoryInputStream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- </constructor>
- <constructor name="new_from_bytes"
- c:identifier="g_memory_input_stream_new_from_bytes"
- version="2.34">
- <doc xml:space="preserve">Creates a new #GMemoryInputStream with data from the given @bytes.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">new #GInputStream read from @bytes</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="bytes" transfer-ownership="none">
- <doc xml:space="preserve">a #GBytes</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_data"
- c:identifier="g_memory_input_stream_new_from_data">
- <doc xml:space="preserve">Creates a new #GMemoryInputStream with data in memory of a given size.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">new #GInputStream read from @data of @len bytes.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="full">
- <doc xml:space="preserve">input data</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="len" transfer-ownership="none">
- <doc xml:space="preserve">length of the data, may be -1 if @data is a nul-terminated string</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">function that is called to free @data, or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add_bytes"
- c:identifier="g_memory_input_stream_add_bytes"
- version="2.34">
- <doc xml:space="preserve">Appends @bytes to data that can be read from the input stream.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryInputStream</doc>
- <type name="MemoryInputStream" c:type="GMemoryInputStream*"/>
- </instance-parameter>
- <parameter name="bytes" transfer-ownership="none">
- <doc xml:space="preserve">input data</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_data" c:identifier="g_memory_input_stream_add_data">
- <doc xml:space="preserve">Appends @data to data that can be read from the input stream</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryInputStream</doc>
- <type name="MemoryInputStream" c:type="GMemoryInputStream*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="full">
- <doc xml:space="preserve">input data</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="len" transfer-ownership="none">
- <doc xml:space="preserve">length of the data, may be -1 if @data is a nul-terminated string</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">function that is called to free @data, or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="InputStream" c:type="GInputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="MemoryInputStreamPrivate"
- c:type="GMemoryInputStreamPrivate*"/>
- </field>
- </class>
- <record name="MemoryInputStreamClass"
- c:type="GMemoryInputStreamClass"
- glib:is-gtype-struct-for="MemoryInputStream">
- <field name="parent_class">
- <type name="InputStreamClass" c:type="GInputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="MemoryInputStreamPrivate"
- c:type="GMemoryInputStreamPrivate"
- disguised="1">
- </record>
- <class name="MemoryOutputStream"
- c:symbol-prefix="memory_output_stream"
- c:type="GMemoryOutputStream"
- parent="OutputStream"
- glib:type-name="GMemoryOutputStream"
- glib:get-type="g_memory_output_stream_get_type"
- glib:type-struct="MemoryOutputStreamClass">
- <doc xml:space="preserve">#GMemoryOutputStream is a class for using arbitrary
- memory chunks as output for GIO streaming output operations.
- As of GLib 2.34, #GMemoryOutputStream trivially implements
- #GPollableOutputStream: it always polls as ready.</doc>
- <implements name="PollableOutputStream"/>
- <implements name="Seekable"/>
- <constructor name="new"
- c:identifier="g_memory_output_stream_new"
- introspectable="0">
- <doc xml:space="preserve">Creates a new #GMemoryOutputStream.
- In most cases this is not the function you want. See
- g_memory_output_stream_new_resizable() instead.
- If @data is non-%NULL, the stream will use that for its internal storage.
- If @realloc_fn is non-%NULL, it will be used for resizing the internal
- storage when necessary and the stream will be considered resizable.
- In that case, the stream will start out being (conceptually) empty.
- @size is used only as a hint for how big @data is. Specifically,
- seeking to the end of a newly-created stream will seek to zero, not
- @size. Seeking past the end of the stream and then writing will
- introduce a zero-filled gap.
- If @realloc_fn is %NULL then the stream is fixed-sized. Seeking to
- the end will seek to @size exactly. Writing past the end will give
- an 'out of space' error. Attempting to seek past the end will fail.
- Unlike the resizable case, seeking to an offset within the stream and
- writing will preserve the bytes passed in as @data before that point
- and will return them as part of g_memory_output_stream_steal_data().
- If you intend to seek you should probably therefore ensure that @data
- is properly initialised.
- It is probably only meaningful to provide @data and @size in the case
- that you want a fixed-sized stream. Put another way: if @realloc_fn
- is non-%NULL then it makes most sense to give @data as %NULL and
- @size as 0 (allowing #GMemoryOutputStream to do the initial
- allocation for itself).
- |[<!-- language="C" -->
- // a stream that can grow
- stream = g_memory_output_stream_new (NULL, 0, realloc, free);
- // another stream that can grow
- stream2 = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
- // a fixed-size stream
- data = malloc (200);
- stream3 = g_memory_output_stream_new (data, 200, NULL, free);
- ]|</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A newly created #GMemoryOutputStream object.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to a chunk of memory to use, or %NULL</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="realloc_function"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- destroy="3">
- <doc xml:space="preserve">a function with realloc() semantics (like g_realloc())
- to be called when @data needs to be grown, or %NULL</doc>
- <type name="ReallocFunc" c:type="GReallocFunc"/>
- </parameter>
- <parameter name="destroy_function"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a function to be called on @data when the stream is
- finalized, or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_resizable"
- c:identifier="g_memory_output_stream_new_resizable"
- version="2.36">
- <doc xml:space="preserve">Creates a new #GMemoryOutputStream, using g_realloc() and g_free()
- for memory allocation.</doc>
- <return-value transfer-ownership="full">
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- </constructor>
- <method name="get_data" c:identifier="g_memory_output_stream_get_data">
- <doc xml:space="preserve">Gets any loaded data from the @ostream.
- Note that the returned pointer may become invalid on the next
- write or truncate operation on the stream.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">pointer to the stream's data, or %NULL if the data
- has been stolen</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="ostream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryOutputStream</doc>
- <type name="MemoryOutputStream" c:type="GMemoryOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_data_size"
- c:identifier="g_memory_output_stream_get_data_size"
- version="2.18">
- <doc xml:space="preserve">Returns the number of bytes from the start up to including the last
- byte written in the stream that has not been truncated away.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes written to the stream</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="ostream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryOutputStream</doc>
- <type name="MemoryOutputStream" c:type="GMemoryOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_size" c:identifier="g_memory_output_stream_get_size">
- <doc xml:space="preserve">Gets the size of the currently allocated data area (available from
- g_memory_output_stream_get_data()).
- You probably don't want to use this function on resizable streams.
- See g_memory_output_stream_get_data_size() instead. For resizable
- streams the size returned by this function is an implementation
- detail and may be change at any time in response to operations on the
- stream.
- If the stream is fixed-sized (ie: no realloc was passed to
- g_memory_output_stream_new()) then this is the maximum size of the
- stream and further writes will return %G_IO_ERROR_NO_SPACE.
- In any case, if you want the number of bytes currently written to the
- stream, use g_memory_output_stream_get_data_size().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes allocated for the data buffer</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="ostream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryOutputStream</doc>
- <type name="MemoryOutputStream" c:type="GMemoryOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="steal_as_bytes"
- c:identifier="g_memory_output_stream_steal_as_bytes"
- version="2.34">
- <doc xml:space="preserve">Returns data from the @ostream as a #GBytes. @ostream must be
- closed before calling this function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the stream's data</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </return-value>
- <parameters>
- <instance-parameter name="ostream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryOutputStream</doc>
- <type name="MemoryOutputStream" c:type="GMemoryOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="steal_data"
- c:identifier="g_memory_output_stream_steal_data"
- version="2.26">
- <doc xml:space="preserve">Gets any loaded data from the @ostream. Ownership of the data
- is transferred to the caller; when no longer needed it must be
- freed using the free function set in @ostream's
- #GMemoryOutputStream:destroy-function property.
- @ostream must be closed before calling this function.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the stream's data, or %NULL if it has previously
- been stolen</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="ostream" transfer-ownership="none">
- <doc xml:space="preserve">a #GMemoryOutputStream</doc>
- <type name="MemoryOutputStream" c:type="GMemoryOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="data"
- version="2.24"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Pointer to buffer where data will be written.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="data-size" version="2.24" transfer-ownership="none">
- <doc xml:space="preserve">Size of data written to the buffer.</doc>
- <type name="gulong" c:type="gulong"/>
- </property>
- <property name="destroy-function"
- version="2.24"
- introspectable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Function called with the buffer as argument when the stream is destroyed.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="realloc-function"
- version="2.24"
- introspectable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Function with realloc semantics called to enlarge the buffer.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </property>
- <property name="size"
- version="2.24"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Current size of the data buffer.</doc>
- <type name="gulong" c:type="gulong"/>
- </property>
- <field name="parent_instance">
- <type name="OutputStream" c:type="GOutputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="MemoryOutputStreamPrivate"
- c:type="GMemoryOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="MemoryOutputStreamClass"
- c:type="GMemoryOutputStreamClass"
- glib:is-gtype-struct-for="MemoryOutputStream">
- <field name="parent_class">
- <type name="OutputStreamClass" c:type="GOutputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="MemoryOutputStreamPrivate"
- c:type="GMemoryOutputStreamPrivate"
- disguised="1">
- </record>
- <class name="Menu"
- c:symbol-prefix="menu"
- c:type="GMenu"
- version="2.32"
- parent="MenuModel"
- glib:type-name="GMenu"
- glib:get-type="g_menu_get_type">
- <doc xml:space="preserve">#GMenu is a simple implementation of #GMenuModel.
- You populate a #GMenu by adding #GMenuItem instances to it.
- There are some convenience functions to allow you to directly
- add items (avoiding #GMenuItem) for the common cases. To add
- a regular item, use g_menu_insert(). To add a section, use
- g_menu_insert_section(). To add a submenu, use
- g_menu_insert_submenu().</doc>
- <constructor name="new" c:identifier="g_menu_new" version="2.32">
- <doc xml:space="preserve">Creates a new #GMenu.
- The new menu has no items.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </return-value>
- </constructor>
- <method name="append" c:identifier="g_menu_append" version="2.32">
- <doc xml:space="preserve">Convenience function for appending a normal menu item to the end of
- @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more
- flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="detailed_action"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the detailed action string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_item"
- c:identifier="g_menu_append_item"
- version="2.32">
- <doc xml:space="preserve">Appends @item to the end of @menu.
- See g_menu_insert_item() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem to append</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_section"
- c:identifier="g_menu_append_section"
- version="2.32">
- <doc xml:space="preserve">Convenience function for appending a section menu item to the end of
- @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for a
- more flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="section" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the section</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_submenu"
- c:identifier="g_menu_append_submenu"
- version="2.32">
- <doc xml:space="preserve">Convenience function for appending a submenu menu item to the end of
- @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for a
- more flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="submenu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the submenu</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="freeze" c:identifier="g_menu_freeze" version="2.32">
- <doc xml:space="preserve">Marks @menu as frozen.
- After the menu is frozen, it is an error to attempt to make any
- changes to it. In effect this means that the #GMenu API must no
- longer be used.
- This function causes g_menu_model_is_mutable() to begin returning
- %FALSE, which has some positive performance implications.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="insert" c:identifier="g_menu_insert" version="2.32">
- <doc xml:space="preserve">Convenience function for inserting a normal menu item into @menu.
- Combine g_menu_item_new() and g_menu_insert_item() for a more flexible
- alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which to insert the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="detailed_action"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the detailed action string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert_item"
- c:identifier="g_menu_insert_item"
- version="2.32">
- <doc xml:space="preserve">Inserts @item into @menu.
- The "insertion" is actually done by copying all of the attribute and
- link values of @item and using them to form a new item within @menu.
- As such, @item itself is not really inserted, but rather, a menu item
- that is exactly the same as the one presently described by @item.
- This means that @item is essentially useless after the insertion
- occurs. Any changes you make to it are ignored unless it is inserted
- again (at which point its updated values will be copied).
- You should probably just free @item once you're done.
- There are many convenience functions to take care of common cases.
- See g_menu_insert(), g_menu_insert_section() and
- g_menu_insert_submenu() as well as "prepend" and "append" variants of
- each of these functions.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which to insert the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">the #GMenuItem to insert</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert_section"
- c:identifier="g_menu_insert_section"
- version="2.32">
- <doc xml:space="preserve">Convenience function for inserting a section menu item into @menu.
- Combine g_menu_item_new_section() and g_menu_insert_item() for a more
- flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which to insert the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="section" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the section</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert_submenu"
- c:identifier="g_menu_insert_submenu"
- version="2.32">
- <doc xml:space="preserve">Convenience function for inserting a submenu menu item into @menu.
- Combine g_menu_item_new_submenu() and g_menu_insert_item() for a more
- flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position at which to insert the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="submenu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the submenu</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepend" c:identifier="g_menu_prepend" version="2.32">
- <doc xml:space="preserve">Convenience function for prepending a normal menu item to the start
- of @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more
- flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="detailed_action"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the detailed action string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepend_item"
- c:identifier="g_menu_prepend_item"
- version="2.32">
- <doc xml:space="preserve">Prepends @item to the start of @menu.
- See g_menu_insert_item() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem to prepend</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepend_section"
- c:identifier="g_menu_prepend_section"
- version="2.32">
- <doc xml:space="preserve">Convenience function for prepending a section menu item to the start
- of @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for
- a more flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="section" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the section</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepend_submenu"
- c:identifier="g_menu_prepend_submenu"
- version="2.32">
- <doc xml:space="preserve">Convenience function for prepending a submenu menu item to the start
- of @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for
- a more flexible alternative.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="submenu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the submenu</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove" c:identifier="g_menu_remove" version="2.32">
- <doc xml:space="preserve">Removes an item from the menu.
- @position gives the index of the item to remove.
- It is an error if position is not in range the range from 0 to one
- less than the number of items in the menu.
- It is not possible to remove items by identity since items are added
- to the menu simply by copying their links and attributes (ie:
- identity of the item itself is not preserved).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position of the item to remove</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_all"
- c:identifier="g_menu_remove_all"
- version="2.38">
- <doc xml:space="preserve">Removes all items in the menu.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenu</doc>
- <type name="Menu" c:type="GMenu*"/>
- </instance-parameter>
- </parameters>
- </method>
- </class>
- <class name="MenuAttributeIter"
- c:symbol-prefix="menu_attribute_iter"
- c:type="GMenuAttributeIter"
- version="2.32"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GMenuAttributeIter"
- glib:get-type="g_menu_attribute_iter_get_type"
- glib:type-struct="MenuAttributeIterClass">
- <doc xml:space="preserve">#GMenuAttributeIter is an opaque structure type. You must access it
- using the functions below.</doc>
- <virtual-method name="get_next" invoker="get_next" version="2.32">
- <doc xml:space="preserve">This function combines g_menu_attribute_iter_next() with
- g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value().
- First the iterator is advanced to the next (possibly first) attribute.
- If that fails, then %FALSE is returned and there are no other
- effects.
- If successful, @name and @value are set to the name and value of the
- attribute that has just been advanced to. At this point,
- g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value() will
- return the same values again.
- The value returned in @name remains valid for as long as the iterator
- remains at the current position. The value returned in @value must
- be unreffed using g_variant_unref() when it is no longer in use.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE if there is no additional
- attribute</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </instance-parameter>
- <parameter name="out_name"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the type of the attribute</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the attribute value</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_name"
- c:identifier="g_menu_attribute_iter_get_name"
- version="2.32">
- <doc xml:space="preserve">Gets the name of the attribute at the current iterator position, as
- a string.
- The iterator is not advanced.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of the attribute</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_next"
- c:identifier="g_menu_attribute_iter_get_next"
- version="2.32">
- <doc xml:space="preserve">This function combines g_menu_attribute_iter_next() with
- g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value().
- First the iterator is advanced to the next (possibly first) attribute.
- If that fails, then %FALSE is returned and there are no other
- effects.
- If successful, @name and @value are set to the name and value of the
- attribute that has just been advanced to. At this point,
- g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value() will
- return the same values again.
- The value returned in @name remains valid for as long as the iterator
- remains at the current position. The value returned in @value must
- be unreffed using g_variant_unref() when it is no longer in use.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE if there is no additional
- attribute</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </instance-parameter>
- <parameter name="out_name"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the type of the attribute</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the attribute value</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value"
- c:identifier="g_menu_attribute_iter_get_value"
- version="2.32">
- <doc xml:space="preserve">Gets the value of the attribute at the current iterator position.
- The iterator is not advanced.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the value of the current attribute</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="next"
- c:identifier="g_menu_attribute_iter_next"
- version="2.32">
- <doc xml:space="preserve">Attempts to advance the iterator to the next (possibly first)
- attribute.
- %TRUE is returned on success, or %FALSE if there are no more
- attributes.
- You must call this function when you first acquire the iterator
- to advance it to the first attribute (and determine if the first
- attribute exists at all).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE when there are no more attributes</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="MenuAttributeIterPrivate"
- c:type="GMenuAttributeIterPrivate*"/>
- </field>
- </class>
- <record name="MenuAttributeIterClass"
- c:type="GMenuAttributeIterClass"
- glib:is-gtype-struct-for="MenuAttributeIter">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_next">
- <callback name="get_next">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE if there is no additional
- attribute</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </parameter>
- <parameter name="out_name"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the type of the attribute</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the attribute value</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="MenuAttributeIterPrivate"
- c:type="GMenuAttributeIterPrivate"
- disguised="1">
- </record>
- <class name="MenuItem"
- c:symbol-prefix="menu_item"
- c:type="GMenuItem"
- version="2.32"
- parent="GObject.Object"
- glib:type-name="GMenuItem"
- glib:get-type="g_menu_item_get_type">
- <doc xml:space="preserve">#GMenuItem is an opaque structure type. You must access it using the
- functions below.</doc>
- <constructor name="new" c:identifier="g_menu_item_new" version="2.32">
- <doc xml:space="preserve">Creates a new #GMenuItem.
- If @label is non-%NULL it is used to set the "label" attribute of the
- new item.
- If @detailed_action is non-%NULL it is used to set the "action" and
- possibly the "target" attribute of the new item. See
- g_menu_item_set_detailed_action() for more information.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </return-value>
- <parameters>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="detailed_action"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the detailed action string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_model"
- c:identifier="g_menu_item_new_from_model"
- version="2.34">
- <doc xml:space="preserve">Creates a #GMenuItem as an exact copy of an existing menu item in a
- #GMenuModel.
- @item_index must be valid (ie: be sure to call
- g_menu_model_get_n_items() first).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuItem.</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of an item in @model</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_section"
- c:identifier="g_menu_item_new_section"
- version="2.32">
- <doc xml:space="preserve">Creates a new #GMenuItem representing a section.
- This is a convenience API around g_menu_item_new() and
- g_menu_item_set_section().
- The effect of having one menu appear as a section of another is
- exactly as it sounds: the items from @section become a direct part of
- the menu that @menu_item is added to.
- Visual separation is typically displayed between two non-empty
- sections. If @label is non-%NULL then it will be encorporated into
- this visual indication. This allows for labeled subsections of a
- menu.
- As a simple example, consider a typical "Edit" menu from a simple
- program. It probably contains an "Undo" and "Redo" item, followed by
- a separator, followed by "Cut", "Copy" and "Paste".
- This would be accomplished by creating three #GMenu instances. The
- first would be populated with the "Undo" and "Redo" items, and the
- second with the "Cut", "Copy" and "Paste" items. The first and
- second menus would then be added as submenus of the third. In XML
- format, this would look something like the following:
- |[
- <menu id='edit-menu'>
- <section>
- <item label='Undo'/>
- <item label='Redo'/>
- </section>
- <section>
- <item label='Cut'/>
- <item label='Copy'/>
- <item label='Paste'/>
- </section>
- </menu>
- ]|
- The following example is exactly equivalent. It is more illustrative
- of the exact relationship between the menus and items (keeping in
- mind that the 'link' element defines a new menu that is linked to the
- containing one). The style of the second example is more verbose and
- difficult to read (and therefore not recommended except for the
- purpose of understanding what is really going on).
- |[
- <menu id='edit-menu'>
- <item>
- <link name='section'>
- <item label='Undo'/>
- <item label='Redo'/>
- </link>
- </item>
- <item>
- <link name='section'>
- <item label='Cut'/>
- <item label='Copy'/>
- <item label='Paste'/>
- </link>
- </item>
- </menu>
- ]|</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </return-value>
- <parameters>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="section" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the section</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_submenu"
- c:identifier="g_menu_item_new_submenu"
- version="2.32">
- <doc xml:space="preserve">Creates a new #GMenuItem representing a submenu.
- This is a convenience API around g_menu_item_new() and
- g_menu_item_set_submenu().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </return-value>
- <parameters>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the section label, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="submenu" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel with the items of the submenu</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_attribute"
- c:identifier="g_menu_item_get_attribute"
- version="2.34"
- introspectable="0">
- <doc xml:space="preserve">Queries the named @attribute on @menu_item.
- If the attribute exists and matches the #GVariantType corresponding
- to @format_string then @format_string is used to deconstruct the
- value into the positional parameters and %TRUE is returned.
- If the attribute does not exist, or it does exist but has the wrong
- type, then the positional parameters are ignored and %FALSE is
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the named attribute was found with the expected
- type</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute name to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format_string" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">positional parameters, as per @format_string</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_attribute_value"
- c:identifier="g_menu_item_get_attribute_value"
- version="2.34">
- <doc xml:space="preserve">Queries the named @attribute on @menu_item.
- If @expected_type is specified and the attribute does not have this
- type, %NULL is returned. %NULL is also returned if the attribute
- simply does not exist.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the attribute value, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute name to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="expected_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the attribute</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_link"
- c:identifier="g_menu_item_get_link"
- version="2.34">
- <doc xml:space="preserve">Queries the named @link on @menu_item.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the link, or %NULL</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="link" transfer-ownership="none">
- <doc xml:space="preserve">the link name to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_action_and_target"
- c:identifier="g_menu_item_set_action_and_target"
- version="2.32"
- introspectable="0">
- <doc xml:space="preserve">Sets or unsets the "action" and "target" attributes of @menu_item.
- If @action is %NULL then both the "action" and "target" attributes
- are unset (and @format_string is ignored along with the positional
- parameters).
- If @action is non-%NULL then the "action" attribute is set.
- @format_string is then inspected. If it is non-%NULL then the proper
- position parameters are collected to create a #GVariant instance to
- use as the target value. If it is %NULL then the positional
- parameters are ignored and the "target" attribute is unset.
- See also g_menu_item_set_action_and_target_value() for an equivalent
- call that directly accepts a #GVariant. See
- g_menu_item_set_detailed_action() for a more convenient version that
- works with string-typed targets.
- See also g_menu_item_set_action_and_target_value() for a
- description of the semantics of the action and target attributes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="action"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the action for this item</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format_string"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a GVariant format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">positional parameters, as per @format_string</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_action_and_target_value"
- c:identifier="g_menu_item_set_action_and_target_value"
- version="2.32">
- <doc xml:space="preserve">Sets or unsets the "action" and "target" attributes of @menu_item.
- If @action is %NULL then both the "action" and "target" attributes
- are unset (and @target_value is ignored).
- If @action is non-%NULL then the "action" attribute is set. The
- "target" attribute is then set to the value of @target_value if it is
- non-%NULL or unset otherwise.
- Normal menu items (ie: not submenu, section or other custom item
- types) are expected to have the "action" attribute set to identify
- the action that they are associated with. The state type of the
- action help to determine the disposition of the menu item. See
- #GAction and #GActionGroup for an overview of actions.
- In general, clicking on the menu item will result in activation of
- the named action with the "target" attribute given as the parameter
- to the action invocation. If the "target" attribute is not set then
- the action is invoked with no parameter.
- If the action has no state then the menu item is usually drawn as a
- plain menu item (ie: with no additional decoration).
- If the action has a boolean state then the menu item is usually drawn
- as a toggle menu item (ie: with a checkmark or equivalent
- indication). The item should be marked as 'toggled' or 'checked'
- when the boolean state is %TRUE.
- If the action has a string state then the menu item is usually drawn
- as a radio menu item (ie: with a radio bullet or equivalent
- indication). The item should be marked as 'selected' when the string
- state is equal to the value of the @target property.
- See g_menu_item_set_action_and_target() or
- g_menu_item_set_detailed_action() for two equivalent calls that are
- probably more convenient for most uses.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="action"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the action for this item</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target_value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant to use as the action target</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute"
- c:identifier="g_menu_item_set_attribute"
- version="2.32"
- introspectable="0">
- <doc xml:space="preserve">Sets or unsets an attribute on @menu_item.
- The attribute to set or unset is specified by @attribute. This
- can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL,
- %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom
- attribute name.
- Attribute names are restricted to lowercase characters, numbers
- and '-'. Furthermore, the names must begin with a lowercase character,
- must not end with a '-', and must not contain consecutive dashes.
- If @format_string is non-%NULL then the proper position parameters
- are collected to create a #GVariant instance to use as the attribute
- value. If it is %NULL then the positional parameterrs are ignored
- and the named attribute is unset.
- See also g_menu_item_set_attribute_value() for an equivalent call
- that directly accepts a #GVariant.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format_string"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant format string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">positional parameters, as per @format_string</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_attribute_value"
- c:identifier="g_menu_item_set_attribute_value"
- version="2.32">
- <doc xml:space="preserve">Sets or unsets an attribute on @menu_item.
- The attribute to set or unset is specified by @attribute. This
- can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL,
- %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom
- attribute name.
- Attribute names are restricted to lowercase characters, numbers
- and '-'. Furthermore, the names must begin with a lowercase character,
- must not end with a '-', and must not contain consecutive dashes.
- must consist only of lowercase
- ASCII characters, digits and '-'.
- If @value is non-%NULL then it is used as the new value for the
- attribute. If @value is %NULL then the attribute is unset. If
- the @value #GVariant is floating, it is consumed.
- See also g_menu_item_set_attribute() for a more convenient way to do
- the same.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant to use as the value, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_detailed_action"
- c:identifier="g_menu_item_set_detailed_action"
- version="2.32">
- <doc xml:space="preserve">Sets the "action" and possibly the "target" attribute of @menu_item.
- The format of @detailed_action is the same format parsed by
- g_action_parse_detailed_name().
- See g_menu_item_set_action_and_target() or
- g_menu_item_set_action_and_target_value() for more flexible (but
- slightly less convenient) alternatives.
- See also g_menu_item_set_action_and_target_value() for a description of
- the semantics of the action and target attributes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="detailed_action" transfer-ownership="none">
- <doc xml:space="preserve">the "detailed" action string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_icon"
- c:identifier="g_menu_item_set_icon"
- version="2.38">
- <doc xml:space="preserve">Sets (or unsets) the icon on @menu_item.
- This call is the same as calling g_icon_serialize() and using the
- result as the value to g_menu_item_set_attribute_value() for
- %G_MENU_ATTRIBUTE_ICON.
- This API is only intended for use with "noun" menu items; things like
- bookmarks or applications in an "Open With" menu. Don't use it on
- menu items corresponding to verbs (eg: stock icons for 'Save' or
- 'Quit').
- If @icon is %NULL then the icon is unset.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GIcon, or %NULL</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_label"
- c:identifier="g_menu_item_set_label"
- version="2.32">
- <doc xml:space="preserve">Sets or unsets the "label" attribute of @menu_item.
- If @label is non-%NULL it is used as the label for the menu item. If
- it is %NULL then the label attribute is unset.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="label"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the label to set, or %NULL to unset</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_link"
- c:identifier="g_menu_item_set_link"
- version="2.32">
- <doc xml:space="preserve">Creates a link from @menu_item to @model if non-%NULL, or unsets it.
- Links are used to establish a relationship between a particular menu
- item and another menu. For example, %G_MENU_LINK_SUBMENU is used to
- associate a submenu with a particular menu item, and %G_MENU_LINK_SECTION
- is used to create a section. Other types of link can be used, but there
- is no guarantee that clients will be able to make sense of them.
- Link types are restricted to lowercase characters, numbers
- and '-'. Furthermore, the names must begin with a lowercase character,
- must not end with a '-', and must not contain consecutive dashes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="link" transfer-ownership="none">
- <doc xml:space="preserve">type of link to establish or unset</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="model"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GMenuModel to link to (or %NULL to unset)</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_section"
- c:identifier="g_menu_item_set_section"
- version="2.32">
- <doc xml:space="preserve">Sets or unsets the "section" link of @menu_item to @section.
- The effect of having one menu appear as a section of another is
- exactly as it sounds: the items from @section become a direct part of
- the menu that @menu_item is added to. See g_menu_item_new_section()
- for more information about what it means for a menu item to be a
- section.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="section"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMenuModel, or %NULL</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_submenu"
- c:identifier="g_menu_item_set_submenu"
- version="2.32">
- <doc xml:space="preserve">Sets or unsets the "submenu" link of @menu_item to @submenu.
- If @submenu is non-%NULL, it is linked to. If it is %NULL then the
- link is unset.
- The effect of having one menu appear as a submenu of another is
- exactly as it sounds.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="menu_item" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuItem</doc>
- <type name="MenuItem" c:type="GMenuItem*"/>
- </instance-parameter>
- <parameter name="submenu"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMenuModel, or %NULL</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <class name="MenuLinkIter"
- c:symbol-prefix="menu_link_iter"
- c:type="GMenuLinkIter"
- version="2.32"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GMenuLinkIter"
- glib:get-type="g_menu_link_iter_get_type"
- glib:type-struct="MenuLinkIterClass">
- <doc xml:space="preserve">#GMenuLinkIter is an opaque structure type. You must access it using
- the functions below.</doc>
- <virtual-method name="get_next" invoker="get_next" version="2.32">
- <doc xml:space="preserve">This function combines g_menu_link_iter_next() with
- g_menu_link_iter_get_name() and g_menu_link_iter_get_value().
- First the iterator is advanced to the next (possibly first) link.
- If that fails, then %FALSE is returned and there are no other effects.
- If successful, @out_link and @value are set to the name and #GMenuModel
- of the link that has just been advanced to. At this point,
- g_menu_link_iter_get_name() and g_menu_link_iter_get_value() will return the
- same values again.
- The value returned in @out_link remains valid for as long as the iterator
- remains at the current position. The value returned in @value must
- be unreffed using g_object_unref() when it is no longer in use.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE if there is no additional link</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </instance-parameter>
- <parameter name="out_link"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the link</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the linked #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel**"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_name"
- c:identifier="g_menu_link_iter_get_name"
- version="2.32">
- <doc xml:space="preserve">Gets the name of the link at the current iterator position.
- The iterator is not advanced.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the type of the link</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_next"
- c:identifier="g_menu_link_iter_get_next"
- version="2.32">
- <doc xml:space="preserve">This function combines g_menu_link_iter_next() with
- g_menu_link_iter_get_name() and g_menu_link_iter_get_value().
- First the iterator is advanced to the next (possibly first) link.
- If that fails, then %FALSE is returned and there are no other effects.
- If successful, @out_link and @value are set to the name and #GMenuModel
- of the link that has just been advanced to. At this point,
- g_menu_link_iter_get_name() and g_menu_link_iter_get_value() will return the
- same values again.
- The value returned in @out_link remains valid for as long as the iterator
- remains at the current position. The value returned in @value must
- be unreffed using g_object_unref() when it is no longer in use.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE if there is no additional link</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </instance-parameter>
- <parameter name="out_link"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the link</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the linked #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value"
- c:identifier="g_menu_link_iter_get_value"
- version="2.32">
- <doc xml:space="preserve">Gets the linked #GMenuModel at the current iterator position.
- The iterator is not advanced.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GMenuModel that is linked to</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="next" c:identifier="g_menu_link_iter_next" version="2.32">
- <doc xml:space="preserve">Attempts to advance the iterator to the next (possibly first)
- link.
- %TRUE is returned on success, or %FALSE if there are no more links.
- You must call this function when you first acquire the iterator to
- advance it to the first link (and determine if the first link exists
- at all).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE when there are no more links</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="MenuLinkIterPrivate" c:type="GMenuLinkIterPrivate*"/>
- </field>
- </class>
- <record name="MenuLinkIterClass"
- c:type="GMenuLinkIterClass"
- glib:is-gtype-struct-for="MenuLinkIter">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_next">
- <callback name="get_next">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, or %FALSE if there is no additional link</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="iter" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </parameter>
- <parameter name="out_link"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the name of the link</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the linked #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel**"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="MenuLinkIterPrivate"
- c:type="GMenuLinkIterPrivate"
- disguised="1">
- </record>
- <class name="MenuModel"
- c:symbol-prefix="menu_model"
- c:type="GMenuModel"
- version="2.32"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GMenuModel"
- glib:get-type="g_menu_model_get_type"
- glib:type-struct="MenuModelClass">
- <doc xml:space="preserve">#GMenuModel represents the contents of a menu -- an ordered list of
- menu items. The items are associated with actions, which can be
- activated through them. Items can be grouped in sections, and may
- have submenus associated with them. Both items and sections usually
- have some representation data, such as labels or icons. The type of
- the associated action (ie whether it is stateful, and what kind of
- state it has) can influence the representation of the item.
- The conceptual model of menus in #GMenuModel is hierarchical:
- sections and submenus are again represented by #GMenuModels.
- Menus themselves do not define their own roles. Rather, the role
- of a particular #GMenuModel is defined by the item that references
- it (or, in the case of the 'root' menu, is defined by the context
- in which it is used).
- As an example, consider the visible portions of this menu:
- ## An example menu # {#menu-example}
- 
- There are 8 "menus" visible in the screenshot: one menubar, two
- submenus and 5 sections:
- - the toplevel menubar (containing 4 items)
- - the View submenu (containing 3 sections)
- - the first section of the View submenu (containing 2 items)
- - the second section of the View submenu (containing 1 item)
- - the final section of the View submenu (containing 1 item)
- - the Highlight Mode submenu (containing 2 sections)
- - the Sources section (containing 2 items)
- - the Markup section (containing 2 items)
- The [example][menu-model] illustrates the conceptual connection between
- these 8 menus. Each large block in the figure represents a menu and the
- smaller blocks within the large block represent items in that menu. Some
- items contain references to other menus.
- ## A menu example # {#menu-model}
- 
- Notice that the separators visible in the [example][menu-example]
- appear nowhere in the [menu model][menu-model]. This is because
- separators are not explicitly represented in the menu model. Instead,
- a separator is inserted between any two non-empty sections of a menu.
- Section items can have labels just like any other item. In that case,
- a display system may show a section header instead of a separator.
- The motivation for this abstract model of application controls is
- that modern user interfaces tend to make these controls available
- outside the application. Examples include global menus, jumplists,
- dash boards, etc. To support such uses, it is necessary to 'export'
- information about actions and their representation in menus, which
- is exactly what the [GActionGroup exporter][gio-GActionGroup-exporter]
- and the [GMenuModel exporter][gio-GMenuModel-exporter] do for
- #GActionGroup and #GMenuModel. The client-side counterparts to
- make use of the exported information are #GDBusActionGroup and
- #GDBusMenuModel.
- The API of #GMenuModel is very generic, with iterators for the
- attributes and links of an item, see g_menu_model_iterate_item_attributes()
- and g_menu_model_iterate_item_links(). The 'standard' attributes and
- link types have predefined names: %G_MENU_ATTRIBUTE_LABEL,
- %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, %G_MENU_LINK_SECTION
- and %G_MENU_LINK_SUBMENU.
- Items in a #GMenuModel represent active controls if they refer to
- an action that can get activated when the user interacts with the
- menu item. The reference to the action is encoded by the string id
- in the %G_MENU_ATTRIBUTE_ACTION attribute. An action id uniquely
- identifies an action in an action group. Which action group(s) provide
- actions depends on the context in which the menu model is used.
- E.g. when the model is exported as the application menu of a
- #GtkApplication, actions can be application-wide or window-specific
- (and thus come from two different action groups). By convention, the
- application-wide actions have names that start with "app.", while the
- names of window-specific actions start with "win.".
- While a wide variety of stateful actions is possible, the following
- is the minimum that is expected to be supported by all users of exported
- menu information:
- - an action with no parameter type and no state
- - an action with no parameter type and boolean state
- - an action with string parameter type and string state
- ## Stateless
- A stateless action typically corresponds to an ordinary menu item.
- Selecting such a menu item will activate the action (with no parameter).
- ## Boolean State
- An action with a boolean state will most typically be used with a "toggle"
- or "switch" menu item. The state can be set directly, but activating the
- action (with no parameter) results in the state being toggled.
- Selecting a toggle menu item will activate the action. The menu item should
- be rendered as "checked" when the state is true.
- ## String Parameter and State
- Actions with string parameters and state will most typically be used to
- represent an enumerated choice over the items available for a group of
- radio menu items. Activating the action with a string parameter is
- equivalent to setting that parameter as the state.
- Radio menu items, in addition to being associated with the action, will
- have a target value. Selecting that menu item will result in activation
- of the action with the target value as the parameter. The menu item should
- be rendered as "selected" when the state of the action is equal to the
- target value of the menu item.</doc>
- <virtual-method name="get_item_attribute_value"
- invoker="get_item_attribute_value"
- version="2.32">
- <doc xml:space="preserve">Queries the item at position @item_index in @model for the attribute
- specified by @attribute.
- If @expected_type is non-%NULL then it specifies the expected type of
- the attribute. If it is %NULL then any type will be accepted.
- If the attribute exists and matches @expected_type (or if the
- expected type is unspecified) then the value is returned.
- If the attribute does not exist, or does not match the expected type
- then %NULL is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the value of the attribute</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="expected_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the attribute, or
- %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_item_attributes">
- <doc xml:space="preserve">Gets all the attributes associated with the item in the menu model.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">the #GMenuModel to query</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">The #GMenuItem to query</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="attributes"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Attributes on the item</doc>
- <type name="GLib.HashTable" c:type="GHashTable**">
- <type name="utf8"/>
- <type name="GLib.Variant"/>
- </type>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_item_link"
- invoker="get_item_link"
- version="2.32">
- <doc xml:space="preserve">Queries the item at position @item_index in @model for the link
- specified by @link.
- If the link exists, the linked #GMenuModel is returned. If the link
- does not exist, %NULL is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the linked #GMenuModel, or %NULL</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="link" transfer-ownership="none">
- <doc xml:space="preserve">the link to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_item_links">
- <doc xml:space="preserve">Gets all the links associated with the item in the menu model.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">the #GMenuModel to query</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">The #GMenuItem to query</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="links"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Links from the item</doc>
- <type name="GLib.HashTable" c:type="GHashTable**">
- <type name="utf8"/>
- <type name="MenuModel"/>
- </type>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_n_items" invoker="get_n_items" version="2.32">
- <doc xml:space="preserve">Query the number of items in @model.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of items</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_mutable" invoker="is_mutable" version="2.32">
- <doc xml:space="preserve">Queries if @model is mutable.
- An immutable #GMenuModel will never emit the #GMenuModel::items-changed
- signal. Consumers of the model may make optimisations accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the model is mutable (ie: "items-changed" may be
- emitted).</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="iterate_item_attributes"
- invoker="iterate_item_attributes"
- version="2.32">
- <doc xml:space="preserve">Creates a #GMenuAttributeIter to iterate over the attributes of
- the item at position @item_index in @model.
- You must free the iterator with g_object_unref() when you are done.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="iterate_item_links"
- invoker="iterate_item_links"
- version="2.32">
- <doc xml:space="preserve">Creates a #GMenuLinkIter to iterate over the links of the item at
- position @item_index in @model.
- You must free the iterator with g_object_unref() when you are done.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_item_attribute"
- c:identifier="g_menu_model_get_item_attribute"
- version="2.32"
- introspectable="0">
- <doc xml:space="preserve">Queries item at position @item_index in @model for the attribute
- specified by @attribute.
- If the attribute exists and matches the #GVariantType corresponding
- to @format_string then @format_string is used to deconstruct the
- value into the positional parameters and %TRUE is returned.
- If the attribute does not exist, or it does exist but has the wrong
- type, then the positional parameters are ignored and %FALSE is
- returned.
- This function is a mix of g_menu_model_get_item_attribute_value() and
- g_variant_get(), followed by a g_variant_unref(). As such,
- @format_string must make a complete copy of the data (since the
- #GVariant may go away after the call to g_variant_unref()). In
- particular, no '&' characters are allowed in @format_string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the named attribute was found with the expected
- type</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format_string" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">positional parameters, as per @format_string</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_item_attribute_value"
- c:identifier="g_menu_model_get_item_attribute_value"
- version="2.32">
- <doc xml:space="preserve">Queries the item at position @item_index in @model for the attribute
- specified by @attribute.
- If @expected_type is non-%NULL then it specifies the expected type of
- the attribute. If it is %NULL then any type will be accepted.
- If the attribute exists and matches @expected_type (or if the
- expected type is unspecified) then the value is returned.
- If the attribute does not exist, or does not match the expected type
- then %NULL is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the value of the attribute</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="expected_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the attribute, or
- %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_item_link"
- c:identifier="g_menu_model_get_item_link"
- version="2.32">
- <doc xml:space="preserve">Queries the item at position @item_index in @model for the link
- specified by @link.
- If the link exists, the linked #GMenuModel is returned. If the link
- does not exist, %NULL is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the linked #GMenuModel, or %NULL</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="link" transfer-ownership="none">
- <doc xml:space="preserve">the link to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_n_items"
- c:identifier="g_menu_model_get_n_items"
- version="2.32">
- <doc xml:space="preserve">Query the number of items in @model.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of items</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_mutable"
- c:identifier="g_menu_model_is_mutable"
- version="2.32">
- <doc xml:space="preserve">Queries if @model is mutable.
- An immutable #GMenuModel will never emit the #GMenuModel::items-changed
- signal. Consumers of the model may make optimisations accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the model is mutable (ie: "items-changed" may be
- emitted).</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="items_changed"
- c:identifier="g_menu_model_items_changed"
- version="2.32">
- <doc xml:space="preserve">Requests emission of the #GMenuModel::items-changed signal on @model.
- This function should never be called except by #GMenuModel
- subclasses. Any other calls to this function will very likely lead
- to a violation of the interface of the model.
- The implementation should update its internal representation of the
- menu before emitting the signal. The implementation should further
- expect to receive queries about the new state of the menu (and
- particularly added menu items) while signal handlers are running.
- The implementation must dispatch this call directly from a mainloop
- entry and not in response to calls -- particularly those from the
- #GMenuModel API. Said another way: the menu must not change while
- user code is running without returning to the mainloop.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position of the change</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="removed" transfer-ownership="none">
- <doc xml:space="preserve">the number of items removed</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="added" transfer-ownership="none">
- <doc xml:space="preserve">the number of items added</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_item_attributes"
- c:identifier="g_menu_model_iterate_item_attributes"
- version="2.32">
- <doc xml:space="preserve">Creates a #GMenuAttributeIter to iterate over the attributes of
- the item at position @item_index in @model.
- You must free the iterator with g_object_unref() when you are done.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_item_links"
- c:identifier="g_menu_model_iterate_item_links"
- version="2.32">
- <doc xml:space="preserve">Creates a #GMenuLinkIter to iterate over the links of the item at
- position @item_index in @model.
- You must free the iterator with g_object_unref() when you are done.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </return-value>
- <parameters>
- <instance-parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </instance-parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="MenuModelPrivate" c:type="GMenuModelPrivate*"/>
- </field>
- <glib:signal name="items-changed" when="last">
- <doc xml:space="preserve">Emitted when a change has occured to the menu.
- The only changes that can occur to a menu is that items are removed
- or added. Items may not change (except by being removed and added
- back in the same location). This signal is capable of describing
- both of those changes (at the same time).
- The signal means that starting at the index @position, @removed
- items were removed and @added items were added in their place. If
- @removed is zero then only items were added. If @added is zero
- then only items were removed.
- As an example, if the menu contains items a, b, c, d (in that
- order) and the signal (2, 1, 3) occurs then the new composition of
- the menu will be a, b, _, _, _, d (with each _ representing some
- new item).
- Signal handlers may query the model (particularly the added items)
- and expect to see the results of the modification that is being
- reported. The signal is emitted after the modification.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="position" transfer-ownership="none">
- <doc xml:space="preserve">the position of the change</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="removed" transfer-ownership="none">
- <doc xml:space="preserve">the number of items removed</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="added" transfer-ownership="none">
- <doc xml:space="preserve">the number of items added</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="MenuModelClass"
- c:type="GMenuModelClass"
- glib:is-gtype-struct-for="MenuModel">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="is_mutable">
- <callback name="is_mutable">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the model is mutable (ie: "items-changed" may be
- emitted).</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_n_items">
- <callback name="get_n_items">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of items</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_item_attributes">
- <callback name="get_item_attributes">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">the #GMenuModel to query</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">The #GMenuItem to query</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="attributes"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Attributes on the item</doc>
- <type name="GLib.HashTable" c:type="GHashTable**">
- <type name="utf8"/>
- <type name="GLib.Variant"/>
- </type>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="iterate_item_attributes">
- <callback name="iterate_item_attributes">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuAttributeIter</doc>
- <type name="MenuAttributeIter" c:type="GMenuAttributeIter*"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_item_attribute_value">
- <callback name="get_item_attribute_value">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the value of the attribute</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="attribute" transfer-ownership="none">
- <doc xml:space="preserve">the attribute to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="expected_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected type of the attribute, or
- %NULL</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_item_links">
- <callback name="get_item_links">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">the #GMenuModel to query</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">The #GMenuItem to query</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="links"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Links from the item</doc>
- <type name="GLib.HashTable" c:type="GHashTable**">
- <type name="utf8"/>
- <type name="MenuModel"/>
- </type>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="iterate_item_links">
- <callback name="iterate_item_links">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GMenuLinkIter</doc>
- <type name="MenuLinkIter" c:type="GMenuLinkIter*"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_item_link">
- <callback name="get_item_link">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the linked #GMenuModel, or %NULL</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </return-value>
- <parameters>
- <parameter name="model" transfer-ownership="none">
- <doc xml:space="preserve">a #GMenuModel</doc>
- <type name="MenuModel" c:type="GMenuModel*"/>
- </parameter>
- <parameter name="item_index" transfer-ownership="none">
- <doc xml:space="preserve">the index of the item</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="link" transfer-ownership="none">
- <doc xml:space="preserve">the link to query</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="MenuModelPrivate" c:type="GMenuModelPrivate" disguised="1">
- </record>
- <interface name="Mount"
- c:symbol-prefix="mount"
- c:type="GMount"
- glib:type-name="GMount"
- glib:get-type="g_mount_get_type"
- glib:type-struct="MountIface">
- <doc xml:space="preserve">The #GMount interface represents user-visible mounts. Note, when
- porting from GnomeVFS, #GMount is the moral equivalent of #GnomeVFSVolume.
- #GMount is a "mounted" filesystem that you can access. Mounted is in
- quotes because it's not the same as a unix mount, it might be a gvfs
- mount, but you can still access the files on it if you use GIO. Might or
- might not be related to a volume object.
- Unmounting a #GMount instance is an asynchronous operation. For
- more information about asynchronous operations, see #GAsyncResult
- and #GTask. To unmount a #GMount instance, first call
- g_mount_unmount_with_operation() with (at least) the #GMount instance and a
- #GAsyncReadyCallback. The callback will be fired when the
- operation has resolved (either with success or failure), and a
- #GAsyncReady structure will be passed to the callback. That
- callback should then call g_mount_unmount_with_operation_finish() with the #GMount
- and the #GAsyncReady data to see if the operation was completed
- successfully. If an @error is present when g_mount_unmount_with_operation_finish()
- is called, then it will be filled with any error information.</doc>
- <virtual-method name="can_eject" invoker="can_eject">
- <doc xml:space="preserve">Checks if @mount can be eject.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @mount can be ejected.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_unmount" invoker="can_unmount">
- <doc xml:space="preserve">Checks if @mount can be mounted.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @mount can be unmounted.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject"
- invoker="eject"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Ejects a mount. This is an asynchronous operation, and is
- finished by calling g_mount_eject_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_eject_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_finish"
- invoker="eject_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_eject_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_with_operation"
- invoker="eject_with_operation"
- version="2.22">
- <doc xml:space="preserve">Ejects a mount. This is an asynchronous operation, and is
- finished by calling g_mount_eject_with_operation_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_with_operation_finish"
- invoker="eject_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_default_location"
- invoker="get_default_location">
- <doc xml:space="preserve">Gets the default location of @mount. The default location of the given
- @mount is a path that reflects the main entry point for the user (e.g.
- the home directory, or the root of the volume).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_drive" invoker="get_drive">
- <doc xml:space="preserve">Gets the drive for the @mount.
- This is a convenience method for getting the #GVolume and then
- using that object to get the #GDrive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDrive or %NULL if @mount is not associated with a volume or a drive.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_icon" invoker="get_icon">
- <doc xml:space="preserve">Gets the icon for @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_name" invoker="get_name">
- <doc xml:space="preserve">Gets the name of @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the name for the given @mount.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_root" invoker="get_root">
- <doc xml:space="preserve">Gets the root directory on @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_sort_key"
- invoker="get_sort_key"
- version="2.32">
- <doc xml:space="preserve">Gets the sort key for @mount, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @mount or %NULL if no such key is available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">A #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_symbolic_icon"
- invoker="get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the symbolic icon for @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_uuid" invoker="get_uuid">
- <doc xml:space="preserve">Gets the UUID for the @mount. The reference is typically based on
- the file system UUID for the mount in question and should be
- considered an opaque string. Returns %NULL if there is no UUID
- available.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the UUID for @mount or %NULL if no UUID can be computed.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_volume" invoker="get_volume">
- <doc xml:space="preserve">Gets the volume for the @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVolume or %NULL if @mount is not associated with a volume.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="guess_content_type"
- invoker="guess_content_type"
- version="2.18">
- <doc xml:space="preserve">Tries to guess the type of content stored on @mount. Returns one or
- more textual identifiers of well-known content types (typically
- prefixed with "x-content/"), e.g. x-content/image-dcf for camera
- memory cards. See the
- [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- specification for more on x-content types.
- This is an asynchronous operation (see
- g_mount_guess_content_type_sync() for the synchronous version), and
- is finished by calling g_mount_guess_content_type_finish() with the
- @mount and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="force_rescan" transfer-ownership="none">
- <doc xml:space="preserve">Whether to force a rescan of the content.
- Otherwise a cached result will be used if available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="guess_content_type_finish"
- invoker="guess_content_type_finish"
- version="2.18"
- throws="1">
- <doc xml:space="preserve">Finishes guessing content types of @mount. If any errors occurred
- during the operation, @error will be set to contain the errors and
- %FALSE will be returned. In particular, you may get an
- %G_IO_ERROR_NOT_SUPPORTED if the mount does not support content
- guessing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of content types or %NULL on error.
- Caller should free this array with g_strfreev() when done with it.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="guess_content_type_sync"
- invoker="guess_content_type_sync"
- version="2.18"
- throws="1">
- <doc xml:space="preserve">Tries to guess the type of content stored on @mount. Returns one or
- more textual identifiers of well-known content types (typically
- prefixed with "x-content/"), e.g. x-content/image-dcf for camera
- memory cards. See the
- [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- specification for more on x-content types.
- This is an synchronous operation and as such may block doing IO;
- see g_mount_guess_content_type() for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of content types or %NULL on error.
- Caller should free this array with g_strfreev() when done with it.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="force_rescan" transfer-ownership="none">
- <doc xml:space="preserve">Whether to force a rescan of the content.
- Otherwise a cached result will be used if available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="pre_unmount">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="remount" invoker="remount">
- <doc xml:space="preserve">Remounts a mount. This is an asynchronous operation, and is
- finished by calling g_mount_remount_finish() with the @mount
- and #GAsyncResults data returned in the @callback.
- Remounting is useful when some setting affecting the operation
- of the volume has been changed, as these may need a remount to
- take affect. While this is semantically equivalent with unmounting
- and then remounting not all backends might need to actually be
- unmounted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="remount_finish"
- invoker="remount_finish"
- throws="1">
- <doc xml:space="preserve">Finishes remounting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully remounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount"
- invoker="unmount"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Unmounts a mount. This is an asynchronous operation, and is
- finished by calling g_mount_unmount_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_unmount_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_finish"
- invoker="unmount_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes unmounting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_unmount_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully unmounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_with_operation"
- invoker="unmount_with_operation"
- version="2.22">
- <doc xml:space="preserve">Unmounts a mount. This is an asynchronous operation, and is
- finished by calling g_mount_unmount_with_operation_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmount_with_operation_finish"
- invoker="unmount_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes unmounting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully unmounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unmounted">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="can_eject" c:identifier="g_mount_can_eject">
- <doc xml:space="preserve">Checks if @mount can be eject.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @mount can be ejected.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_unmount" c:identifier="g_mount_can_unmount">
- <doc xml:space="preserve">Checks if @mount can be mounted.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @mount can be unmounted.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="eject"
- c:identifier="g_mount_eject"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Ejects a mount. This is an asynchronous operation, and is
- finished by calling g_mount_eject_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_eject_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_finish"
- c:identifier="g_mount_eject_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_eject_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_with_operation"
- c:identifier="g_mount_eject_with_operation"
- version="2.22">
- <doc xml:space="preserve">Ejects a mount. This is an asynchronous operation, and is
- finished by calling g_mount_eject_with_operation_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_with_operation_finish"
- c:identifier="g_mount_eject_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_default_location"
- c:identifier="g_mount_get_default_location">
- <doc xml:space="preserve">Gets the default location of @mount. The default location of the given
- @mount is a path that reflects the main entry point for the user (e.g.
- the home directory, or the root of the volume).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_drive" c:identifier="g_mount_get_drive">
- <doc xml:space="preserve">Gets the drive for the @mount.
- This is a convenience method for getting the #GVolume and then
- using that object to get the #GDrive.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDrive or %NULL if @mount is not associated with a volume or a drive.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_icon" c:identifier="g_mount_get_icon">
- <doc xml:space="preserve">Gets the icon for @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="g_mount_get_name">
- <doc xml:space="preserve">Gets the name of @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the name for the given @mount.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_root" c:identifier="g_mount_get_root">
- <doc xml:space="preserve">Gets the root directory on @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sort_key"
- c:identifier="g_mount_get_sort_key"
- version="2.32">
- <doc xml:space="preserve">Gets the sort key for @mount, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @mount or %NULL if no such key is available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">A #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_symbolic_icon"
- c:identifier="g_mount_get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the symbolic icon for @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uuid" c:identifier="g_mount_get_uuid">
- <doc xml:space="preserve">Gets the UUID for the @mount. The reference is typically based on
- the file system UUID for the mount in question and should be
- considered an opaque string. Returns %NULL if there is no UUID
- available.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the UUID for @mount or %NULL if no UUID can be computed.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_volume" c:identifier="g_mount_get_volume">
- <doc xml:space="preserve">Gets the volume for the @mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVolume or %NULL if @mount is not associated with a volume.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="guess_content_type"
- c:identifier="g_mount_guess_content_type"
- version="2.18">
- <doc xml:space="preserve">Tries to guess the type of content stored on @mount. Returns one or
- more textual identifiers of well-known content types (typically
- prefixed with "x-content/"), e.g. x-content/image-dcf for camera
- memory cards. See the
- [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- specification for more on x-content types.
- This is an asynchronous operation (see
- g_mount_guess_content_type_sync() for the synchronous version), and
- is finished by calling g_mount_guess_content_type_finish() with the
- @mount and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="force_rescan" transfer-ownership="none">
- <doc xml:space="preserve">Whether to force a rescan of the content.
- Otherwise a cached result will be used if available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="guess_content_type_finish"
- c:identifier="g_mount_guess_content_type_finish"
- version="2.18"
- throws="1">
- <doc xml:space="preserve">Finishes guessing content types of @mount. If any errors occurred
- during the operation, @error will be set to contain the errors and
- %FALSE will be returned. In particular, you may get an
- %G_IO_ERROR_NOT_SUPPORTED if the mount does not support content
- guessing.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of content types or %NULL on error.
- Caller should free this array with g_strfreev() when done with it.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="guess_content_type_sync"
- c:identifier="g_mount_guess_content_type_sync"
- version="2.18"
- throws="1">
- <doc xml:space="preserve">Tries to guess the type of content stored on @mount. Returns one or
- more textual identifiers of well-known content types (typically
- prefixed with "x-content/"), e.g. x-content/image-dcf for camera
- memory cards. See the
- [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- specification for more on x-content types.
- This is an synchronous operation and as such may block doing IO;
- see g_mount_guess_content_type() for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of content types or %NULL on error.
- Caller should free this array with g_strfreev() when done with it.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="force_rescan" transfer-ownership="none">
- <doc xml:space="preserve">Whether to force a rescan of the content.
- Otherwise a cached result will be used if available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_shadowed"
- c:identifier="g_mount_is_shadowed"
- version="2.20">
- <doc xml:space="preserve">Determines if @mount is shadowed. Applications or libraries should
- avoid displaying @mount in the user interface if it is shadowed.
- A mount is said to be shadowed if there exists one or more user
- visible objects (currently #GMount objects) with a root that is
- inside the root of @mount.
- One application of shadow mounts is when exposing a single file
- system that is used to address several logical volumes. In this
- situation, a #GVolumeMonitor implementation would create two
- #GVolume objects (for example, one for the camera functionality of
- the device and one for a SD card reader on the device) with
- activation URIs `gphoto2://[usb:001,002]/store1/`
- and `gphoto2://[usb:001,002]/store2/`. When the
- underlying mount (with root
- `gphoto2://[usb:001,002]/`) is mounted, said
- #GVolumeMonitor implementation would create two #GMount objects
- (each with their root matching the corresponding volume activation
- root) that would shadow the original mount.
- The proxy monitor in GVfs 2.26 and later, automatically creates and
- manage shadow mounts (and shadows the underlying mount) if the
- activation root on a #GVolume is set.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mount is shadowed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">A #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="remount" c:identifier="g_mount_remount">
- <doc xml:space="preserve">Remounts a mount. This is an asynchronous operation, and is
- finished by calling g_mount_remount_finish() with the @mount
- and #GAsyncResults data returned in the @callback.
- Remounting is useful when some setting affecting the operation
- of the volume has been changed, as these may need a remount to
- take affect. While this is semantically equivalent with unmounting
- and then remounting not all backends might need to actually be
- unmounted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="remount_finish"
- c:identifier="g_mount_remount_finish"
- throws="1">
- <doc xml:space="preserve">Finishes remounting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully remounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="shadow" c:identifier="g_mount_shadow" version="2.20">
- <doc xml:space="preserve">Increments the shadow count on @mount. Usually used by
- #GVolumeMonitor implementations when creating a shadow mount for
- @mount, see g_mount_is_shadowed() for more information. The caller
- will need to emit the #GMount::changed signal on @mount manually.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">A #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unmount"
- c:identifier="g_mount_unmount"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Unmounts a mount. This is an asynchronous operation, and is
- finished by calling g_mount_unmount_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_unmount_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_finish"
- c:identifier="g_mount_unmount_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes unmounting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_mount_unmount_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully unmounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_with_operation"
- c:identifier="g_mount_unmount_with_operation"
- version="2.22">
- <doc xml:space="preserve">Unmounts a mount. This is an asynchronous operation, and is
- finished by calling g_mount_unmount_with_operation_finish() with the @mount
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmount_with_operation_finish"
- c:identifier="g_mount_unmount_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes unmounting a mount. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully unmounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unshadow" c:identifier="g_mount_unshadow" version="2.20">
- <doc xml:space="preserve">Decrements the shadow count on @mount. Usually used by
- #GVolumeMonitor implementations when destroying a shadow mount for
- @mount, see g_mount_is_shadowed() for more information. The caller
- will need to emit the #GMount::changed signal on @mount manually.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">A #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </instance-parameter>
- </parameters>
- </method>
- <glib:signal name="changed" when="last">
- <doc xml:space="preserve">Emitted when the mount has been changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="pre-unmount" when="last" version="2.22">
- <doc xml:space="preserve">This signal is emitted when the #GMount is about to be
- unmounted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="unmounted" when="last">
- <doc xml:space="preserve">This signal is emitted when the #GMount have been
- unmounted. If the recipient is holding references to the
- object they should release them so the object can be
- finalized.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </interface>
- <record name="MountIface"
- c:type="GMountIface"
- glib:is-gtype-struct-for="Mount">
- <doc xml:space="preserve">Interface for implementing operations for mounts.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="changed">
- <callback name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmounted">
- <callback name="unmounted">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_root">
- <callback name="get_root">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_name">
- <callback name="get_name">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the name for the given @mount.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_icon">
- <callback name="get_icon">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_uuid">
- <callback name="get_uuid">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the UUID for @mount or %NULL if no UUID can be computed.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_volume">
- <callback name="get_volume">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVolume or %NULL if @mount is not associated with a volume.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_drive">
- <callback name="get_drive">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDrive or %NULL if @mount is not associated with a volume or a drive.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_unmount">
- <callback name="can_unmount">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @mount can be unmounted.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_eject">
- <callback name="can_eject">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @mount can be ejected.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount">
- <callback name="unmount">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount_finish">
- <callback name="unmount_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully unmounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject">
- <callback name="eject">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_finish">
- <callback name="eject_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="remount">
- <callback name="remount">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="remount_finish">
- <callback name="remount_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully remounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="guess_content_type">
- <callback name="guess_content_type">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="force_rescan" transfer-ownership="none">
- <doc xml:space="preserve">Whether to force a rescan of the content.
- Otherwise a cached result will be used if available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="guess_content_type_finish">
- <callback name="guess_content_type_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of content types or %NULL on error.
- Caller should free this array with g_strfreev() when done with it.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="guess_content_type_sync">
- <callback name="guess_content_type_sync" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array of content types or %NULL on error.
- Caller should free this array with g_strfreev() when done with it.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="force_rescan" transfer-ownership="none">
- <doc xml:space="preserve">Whether to force a rescan of the content.
- Otherwise a cached result will be used if available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="pre_unmount">
- <callback name="pre_unmount">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount_with_operation">
- <callback name="unmount_with_operation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmount_with_operation_finish">
- <callback name="unmount_with_operation_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully unmounted. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_with_operation">
- <callback name="eject_with_operation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid
- user interaction.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_with_operation_finish">
- <callback name="eject_with_operation_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount was successfully ejected. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_default_location">
- <callback name="get_default_location">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_sort_key">
- <callback name="get_sort_key">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @mount or %NULL if no such key is available.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">A #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_symbolic_icon">
- <callback name="get_symbolic_icon">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with
- g_object_unref() when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount.</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <bitfield name="MountMountFlags"
- glib:type-name="GMountMountFlags"
- glib:get-type="g_mount_mount_flags_get_type"
- c:type="GMountMountFlags">
- <doc xml:space="preserve">Flags used when mounting a mount.</doc>
- <member name="none"
- value="0"
- c:identifier="G_MOUNT_MOUNT_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- </bitfield>
- <class name="MountOperation"
- c:symbol-prefix="mount_operation"
- c:type="GMountOperation"
- parent="GObject.Object"
- glib:type-name="GMountOperation"
- glib:get-type="g_mount_operation_get_type"
- glib:type-struct="MountOperationClass">
- <doc xml:space="preserve">#GMountOperation provides a mechanism for interacting with the user.
- It can be used for authenticating mountable operations, such as loop
- mounting files, hard drive partitions or server locations. It can
- also be used to ask the user questions or show a list of applications
- preventing unmount or eject operations from completing.
- Note that #GMountOperation is used for more than just #GMount
- objects – for example it is also used in g_drive_start() and
- g_drive_stop().
- Users should instantiate a subclass of this that implements all the
- various callbacks to show the required dialogs, such as
- #GtkMountOperation. If no user interaction is desired (for example
- when automounting filesystems at login time), usually %NULL can be
- passed, see each method taking a #GMountOperation for details.</doc>
- <constructor name="new" c:identifier="g_mount_operation_new">
- <doc xml:space="preserve">Creates a new mount operation.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </return-value>
- </constructor>
- <virtual-method name="aborted">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="ask_password">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="default_user" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="default_domain" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AskPasswordFlags" c:type="GAskPasswordFlags"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="ask_question">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="choices" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reply" invoker="reply">
- <doc xml:space="preserve">Emits the #GMountOperation::reply signal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperationResult</doc>
- <type name="MountOperationResult" c:type="GMountOperationResult"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="show_processes" introspectable="0">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="processes" transfer-ownership="none">
- <array name="GLib.Array" c:type="GArray*">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- <parameter name="choices" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="show_unmount_progress">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="time_left" transfer-ownership="none">
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="bytes_left" transfer-ownership="none">
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_anonymous"
- c:identifier="g_mount_operation_get_anonymous">
- <doc xml:space="preserve">Check to see whether the mount operation is being used
- for an anonymous user.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if mount operation is anonymous.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_choice" c:identifier="g_mount_operation_get_choice">
- <doc xml:space="preserve">Gets a choice from the mount operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer containing an index of the user's choice from
- the choice's list, or %0.</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_domain" c:identifier="g_mount_operation_get_domain">
- <doc xml:space="preserve">Gets the domain of the mount operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string set to the domain.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_password"
- c:identifier="g_mount_operation_get_password">
- <doc xml:space="preserve">Gets a password from the mount operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the password within @op.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_password_save"
- c:identifier="g_mount_operation_get_password_save">
- <doc xml:space="preserve">Gets the state of saving passwords for the mount operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GPasswordSave flag.</doc>
- <type name="PasswordSave" c:type="GPasswordSave"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_username"
- c:identifier="g_mount_operation_get_username">
- <doc xml:space="preserve">Get the user name from the mount operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the user name.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="reply" c:identifier="g_mount_operation_reply">
- <doc xml:space="preserve">Emits the #GMountOperation::reply signal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperationResult</doc>
- <type name="MountOperationResult" c:type="GMountOperationResult"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_anonymous"
- c:identifier="g_mount_operation_set_anonymous">
- <doc xml:space="preserve">Sets the mount operation to use an anonymous user if @anonymous is %TRUE.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="anonymous" transfer-ownership="none">
- <doc xml:space="preserve">boolean value.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_choice" c:identifier="g_mount_operation_set_choice">
- <doc xml:space="preserve">Sets a default choice for the mount operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="choice" transfer-ownership="none">
- <doc xml:space="preserve">an integer.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_domain" c:identifier="g_mount_operation_set_domain">
- <doc xml:space="preserve">Sets the mount operation's domain.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">the domain to set.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_password"
- c:identifier="g_mount_operation_set_password">
- <doc xml:space="preserve">Sets the mount operation's password to @password.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">password to set.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_password_save"
- c:identifier="g_mount_operation_set_password_save">
- <doc xml:space="preserve">Sets the state of saving passwords for the mount operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="save" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GPasswordSave flags.</doc>
- <type name="PasswordSave" c:type="GPasswordSave"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_username"
- c:identifier="g_mount_operation_set_username">
- <doc xml:space="preserve">Sets the user name within @op to @username.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation.</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </instance-parameter>
- <parameter name="username" transfer-ownership="none">
- <doc xml:space="preserve">input username.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <property name="anonymous" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">Whether to use an anonymous user when authenticating.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="choice" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The index of the user's choice when a question is asked during the
- mount operation. See the #GMountOperation::ask-question signal.</doc>
- <type name="gint" c:type="gint"/>
- </property>
- <property name="domain" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The domain to use for the mount operation.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="password" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The password that is used for authentication when carrying out
- the mount operation.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="password-save" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">Determines if and how the password information should be saved.</doc>
- <type name="PasswordSave"/>
- </property>
- <property name="username" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The user name that is used for authentication when carrying out
- the mount operation.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="MountOperationPrivate" c:type="GMountOperationPrivate*"/>
- </field>
- <glib:signal name="aborted" when="last" version="2.20">
- <doc xml:space="preserve">Emitted by the backend when e.g. a device becomes unavailable
- while a mount operation is in progress.
- Implementations of GMountOperation should handle this signal
- by dismissing open password dialogs.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="ask-password" when="last">
- <doc xml:space="preserve">Emitted when a mount operation asks the user for a password.
- If the message contains a line break, the first line should be
- presented as a heading. For example, it may be used as the
- primary text in a #GtkMessageDialog.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">string containing a message to display to the user.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="default_user" transfer-ownership="none">
- <doc xml:space="preserve">string containing the default user name.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="default_domain" transfer-ownership="none">
- <doc xml:space="preserve">string containing the default domain.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GAskPasswordFlags.</doc>
- <type name="AskPasswordFlags"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="ask-question" when="last">
- <doc xml:space="preserve">Emitted when asking the user a question and gives a list of
- choices for the user to choose from.
- If the message contains a line break, the first line should be
- presented as a heading. For example, it may be used as the
- primary text in a #GtkMessageDialog.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">string containing a message to display to the user.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="choices" transfer-ownership="none">
- <doc xml:space="preserve">an array of strings for each possible choice.</doc>
- <array>
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="reply" when="last">
- <doc xml:space="preserve">Emitted when the user has replied to the mount operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperationResult indicating how the request was handled</doc>
- <type name="MountOperationResult"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="show-processes" when="last" version="2.22">
- <doc xml:space="preserve">Emitted when one or more processes are blocking an operation
- e.g. unmounting/ejecting a #GMount or stopping a #GDrive.
- Note that this signal may be emitted several times to update the
- list of blocking processes as processes close files. The
- application should only respond with g_mount_operation_reply() to
- the latest signal (setting #GMountOperation:choice to the choice
- the user made).
- If the message contains a line break, the first line should be
- presented as a heading. For example, it may be used as the
- primary text in a #GtkMessageDialog.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">string containing a message to display to the user.</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="processes" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GPid for processes
- blocking the operation.</doc>
- <array name="GLib.Array">
- <type name="GLib.Pid"/>
- </array>
- </parameter>
- <parameter name="choices" transfer-ownership="none">
- <doc xml:space="preserve">an array of strings for each possible choice.</doc>
- <array>
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="show-unmount-progress" when="last" version="2.34">
- <doc xml:space="preserve">Emitted when an unmount operation has been busy for more than some time
- (typically 1.5 seconds).
- When unmounting or ejecting a volume, the kernel might need to flush
- pending data in its buffers to the volume stable storage, and this operation
- can take a considerable amount of time. This signal may be emitted several
- times as long as the unmount operation is outstanding, and then one
- last time when the operation is completed, with @bytes_left set to zero.
- Implementations of GMountOperation should handle this signal by
- showing an UI notification, and then dismiss it, or show another notification
- of completion, when @bytes_left reaches zero.
- If the message contains a line break, the first line should be
- presented as a heading. For example, it may be used as the
- primary text in a #GtkMessageDialog.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">string containing a mesage to display to the user</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="time_left" transfer-ownership="none">
- <doc xml:space="preserve">the estimated time left before the operation completes,
- in microseconds, or -1</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="bytes_left" transfer-ownership="none">
- <doc xml:space="preserve">the amount of bytes to be written before the operation
- completes (or -1 if such amount is not known), or zero if the operation
- is completed</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="MountOperationClass"
- c:type="GMountOperationClass"
- glib:is-gtype-struct-for="MountOperation">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="ask_password">
- <callback name="ask_password">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="default_user" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="default_domain" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AskPasswordFlags" c:type="GAskPasswordFlags"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="ask_question">
- <callback name="ask_question">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="choices" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reply">
- <callback name="reply">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="op" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperation</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GMountOperationResult</doc>
- <type name="MountOperationResult"
- c:type="GMountOperationResult"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="aborted">
- <callback name="aborted">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="show_processes" introspectable="0">
- <callback name="show_processes" introspectable="0">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="processes" transfer-ownership="none">
- <array name="GLib.Array" c:type="GArray*">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </parameter>
- <parameter name="choices" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="show_unmount_progress">
- <callback name="show_unmount_progress">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="op" transfer-ownership="none">
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="time_left" transfer-ownership="none">
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="bytes_left" transfer-ownership="none">
- <type name="gint64" c:type="gint64"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved7" introspectable="0">
- <callback name="_g_reserved7">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved8" introspectable="0">
- <callback name="_g_reserved8">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved9" introspectable="0">
- <callback name="_g_reserved9">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="MountOperationPrivate"
- c:type="GMountOperationPrivate"
- disguised="1">
- </record>
- <enumeration name="MountOperationResult"
- glib:type-name="GMountOperationResult"
- glib:get-type="g_mount_operation_result_get_type"
- c:type="GMountOperationResult">
- <doc xml:space="preserve">#GMountOperationResult is returned as a result when a request for
- information is send by the mounting operation.</doc>
- <member name="handled"
- value="0"
- c:identifier="G_MOUNT_OPERATION_HANDLED"
- glib:nick="handled">
- <doc xml:space="preserve">The request was fulfilled and the
- user specified data is now available</doc>
- </member>
- <member name="aborted"
- value="1"
- c:identifier="G_MOUNT_OPERATION_ABORTED"
- glib:nick="aborted">
- <doc xml:space="preserve">The user requested the mount operation
- to be aborted</doc>
- </member>
- <member name="unhandled"
- value="2"
- c:identifier="G_MOUNT_OPERATION_UNHANDLED"
- glib:nick="unhandled">
- <doc xml:space="preserve">The request was unhandled (i.e. not
- implemented)</doc>
- </member>
- </enumeration>
- <bitfield name="MountUnmountFlags"
- glib:type-name="GMountUnmountFlags"
- glib:get-type="g_mount_unmount_flags_get_type"
- c:type="GMountUnmountFlags">
- <doc xml:space="preserve">Flags used when an unmounting a mount.</doc>
- <member name="none"
- value="0"
- c:identifier="G_MOUNT_UNMOUNT_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="force"
- value="1"
- c:identifier="G_MOUNT_UNMOUNT_FORCE"
- glib:nick="force">
- <doc xml:space="preserve">Unmount even if there are outstanding
- file operations on the mount.</doc>
- </member>
- </bitfield>
- <constant name="NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME"
- value="gio-native-volume-monitor"
- c:type="G_NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="NETWORK_MONITOR_EXTENSION_POINT_NAME"
- value="gio-network-monitor"
- c:type="G_NETWORK_MONITOR_EXTENSION_POINT_NAME"
- version="2.30">
- <doc xml:space="preserve">Extension point for network status monitoring functionality.
- See [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <record name="NativeSocketAddress"
- c:type="GNativeSocketAddress"
- disguised="1">
- <doc xml:space="preserve">An socket address of some unknown native type.</doc>
- </record>
- <class name="NativeVolumeMonitor"
- c:symbol-prefix="native_volume_monitor"
- c:type="GNativeVolumeMonitor"
- parent="VolumeMonitor"
- abstract="1"
- glib:type-name="GNativeVolumeMonitor"
- glib:get-type="g_native_volume_monitor_get_type"
- glib:type-struct="NativeVolumeMonitorClass">
- <field name="parent_instance">
- <type name="VolumeMonitor" c:type="GVolumeMonitor"/>
- </field>
- </class>
- <record name="NativeVolumeMonitorClass"
- c:type="GNativeVolumeMonitorClass"
- glib:is-gtype-struct-for="NativeVolumeMonitor">
- <field name="parent_class">
- <type name="VolumeMonitorClass" c:type="GVolumeMonitorClass"/>
- </field>
- <field name="get_mount_for_mount_path" introspectable="0">
- <callback name="get_mount_for_mount_path" introspectable="0">
- <return-value>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <parameter name="mount_path" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable" transfer-ownership="none">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="NetworkAddress"
- c:symbol-prefix="network_address"
- c:type="GNetworkAddress"
- parent="GObject.Object"
- glib:type-name="GNetworkAddress"
- glib:get-type="g_network_address_get_type"
- glib:type-struct="NetworkAddressClass">
- <doc xml:space="preserve">#GNetworkAddress provides an easy way to resolve a hostname and
- then attempt to connect to that host, handling the possibility of
- multiple IP addresses and multiple address families.
- See #GSocketConnectable for and example of using the connectable
- interface.</doc>
- <implements name="SocketConnectable"/>
- <constructor name="new"
- c:identifier="g_network_address_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GSocketConnectable for connecting to the given
- @hostname and @port.
- Note that depending on the configuration of the machine, a
- @hostname of `localhost` may refer to the IPv4 loopback address
- only, or to both IPv4 and IPv6; use
- g_network_address_new_loopback() to create a #GNetworkAddress that
- is guaranteed to resolve to both addresses.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GNetworkAddress</doc>
- <type name="NetworkAddress" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">the port</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_loopback"
- c:identifier="g_network_address_new_loopback"
- version="2.44">
- <doc xml:space="preserve">Creates a new #GSocketConnectable for connecting to the local host
- over a loopback connection to the given @port. This is intended for
- use in connecting to local services which may be running on IPv4 or
- IPv6.
- The connectable will return IPv4 and IPv6 loopback addresses,
- regardless of how the host resolves `localhost`. By contrast,
- g_network_address_new() will often only return an IPv4 address when
- resolving `localhost`, and an IPv6 address for `localhost6`.
- g_network_address_get_hostname() will always return `localhost` for
- #GNetworkAddresses created with this constructor.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GNetworkAddress</doc>
- <type name="NetworkAddress" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">the port</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="parse"
- c:identifier="g_network_address_parse"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Creates a new #GSocketConnectable for connecting to the given
- @hostname and @port. May fail and return %NULL in case
- parsing @host_and_port fails.
- @host_and_port may be in any of a number of recognised formats; an IPv6
- address, an IPv4 address, or a domain name (in which case a DNS
- lookup is performed). Quoting with [] is supported for all address
- types. A port override may be specified in the usual way with a
- colon.
- If no port is specified in @host_and_port then @default_port will be
- used as the port number to connect to.
- In general, @host_and_port is expected to be provided by the user
- (allowing them to give the hostname, and a port overide if necessary)
- and @default_port is expected to be provided by the application.
- (The port component of @host_and_port can also be specified as a
- service name rather than as a numeric port, but this functionality
- is deprecated, because it depends on the contents of /etc/services,
- which is generally quite sparse on platforms other than Linux.)</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GNetworkAddress, or %NULL on error</doc>
- <type name="NetworkAddress" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <parameter name="host_and_port" transfer-ownership="none">
- <doc xml:space="preserve">the hostname and optionally a port</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="default_port" transfer-ownership="none">
- <doc xml:space="preserve">the default port if not in @host_and_port</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_uri"
- c:identifier="g_network_address_parse_uri"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Creates a new #GSocketConnectable for connecting to the given
- @uri. May fail and return %NULL in case parsing @uri fails.
- Using this rather than g_network_address_new() or
- g_network_address_parse() allows #GSocketClient to determine
- when to use application-specific proxy protocols.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GNetworkAddress, or %NULL on error</doc>
- <type name="NetworkAddress" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">the hostname and optionally a port</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="default_port" transfer-ownership="none">
- <doc xml:space="preserve">The default port if none is found in the URI</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_hostname"
- c:identifier="g_network_address_get_hostname"
- version="2.22">
- <doc xml:space="preserve">Gets @addr's hostname. This might be either UTF-8 or ASCII-encoded,
- depending on what @addr was created with.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@addr's hostname</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="addr" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkAddress</doc>
- <type name="NetworkAddress" c:type="GNetworkAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_port"
- c:identifier="g_network_address_get_port"
- version="2.22">
- <doc xml:space="preserve">Gets @addr's port number</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@addr's port (which may be 0)</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="addr" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkAddress</doc>
- <type name="NetworkAddress" c:type="GNetworkAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_scheme"
- c:identifier="g_network_address_get_scheme"
- version="2.26">
- <doc xml:space="preserve">Gets @addr's scheme</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@addr's scheme (%NULL if not built from URI)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="addr" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkAddress</doc>
- <type name="NetworkAddress" c:type="GNetworkAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="hostname"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="port"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <property name="scheme"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="NetworkAddressPrivate" c:type="GNetworkAddressPrivate*"/>
- </field>
- </class>
- <record name="NetworkAddressClass"
- c:type="GNetworkAddressClass"
- glib:is-gtype-struct-for="NetworkAddress">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <record name="NetworkAddressPrivate"
- c:type="GNetworkAddressPrivate"
- disguised="1">
- </record>
- <enumeration name="NetworkConnectivity"
- version="2.44"
- glib:type-name="GNetworkConnectivity"
- glib:get-type="g_network_connectivity_get_type"
- c:type="GNetworkConnectivity">
- <doc xml:space="preserve">The host's network connectivity state, as reported by #GNetworkMonitor.</doc>
- <member name="local"
- value="1"
- c:identifier="G_NETWORK_CONNECTIVITY_LOCAL"
- glib:nick="local">
- <doc xml:space="preserve">The host is not configured with a
- route to the Internet; it may or may not be connected to a local
- network.</doc>
- </member>
- <member name="limited"
- value="2"
- c:identifier="G_NETWORK_CONNECTIVITY_LIMITED"
- glib:nick="limited">
- <doc xml:space="preserve">The host is connected to a network, but
- does not appear to be able to reach the full Internet, perhaps
- due to upstream network problems.</doc>
- </member>
- <member name="portal"
- value="3"
- c:identifier="G_NETWORK_CONNECTIVITY_PORTAL"
- glib:nick="portal">
- <doc xml:space="preserve">The host is behind a captive portal and
- cannot reach the full Internet.</doc>
- </member>
- <member name="full"
- value="4"
- c:identifier="G_NETWORK_CONNECTIVITY_FULL"
- glib:nick="full">
- <doc xml:space="preserve">The host is connected to a network, and
- appears to be able to reach the full Internet.</doc>
- </member>
- </enumeration>
- <interface name="NetworkMonitor"
- c:symbol-prefix="network_monitor"
- c:type="GNetworkMonitor"
- version="2.32"
- glib:type-name="GNetworkMonitor"
- glib:get-type="g_network_monitor_get_type"
- glib:type-struct="NetworkMonitorInterface">
- <doc xml:space="preserve">#GNetworkMonitor provides an easy-to-use cross-platform API
- for monitoring network connectivity. On Linux, the implementation
- is based on the kernel's netlink interface.</doc>
- <prerequisite name="Initable"/>
- <function name="get_default"
- c:identifier="g_network_monitor_get_default"
- version="2.32">
- <doc xml:space="preserve">Gets the default #GNetworkMonitor for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </return-value>
- </function>
- <virtual-method name="can_reach"
- invoker="can_reach"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Attempts to determine whether or not the host pointed to by
- @connectable can be reached, without actually trying to connect to
- it.
- This may return %TRUE even when #GNetworkMonitor:network-available
- is %FALSE, if, for example, @monitor can determine that
- @connectable refers to a host on a local network.
- If @monitor believes that an attempt to connect to @connectable
- will succeed, it will return %TRUE. Otherwise, it will return
- %FALSE and set @error to an appropriate error (such as
- %G_IO_ERROR_HOST_UNREACHABLE).
- Note that although this does not attempt to connect to
- @connectable, it may still block for a brief period of time (eg,
- trying to do multicast DNS on the local network), so if you do not
- want to block, you should use g_network_monitor_can_reach_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @connectable is reachable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_reach_async" invoker="can_reach_async">
- <doc xml:space="preserve">Asynchronously attempts to determine whether or not the host
- pointed to by @connectable can be reached, without actually
- trying to connect to it.
- For more details, see g_network_monitor_can_reach().
- When the operation is finished, @callback will be called.
- You can then call g_network_monitor_can_reach_finish()
- to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_reach_finish"
- invoker="can_reach_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an async network connectivity test.
- See g_network_monitor_can_reach_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if network is reachable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="network_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="available" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="can_reach"
- c:identifier="g_network_monitor_can_reach"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Attempts to determine whether or not the host pointed to by
- @connectable can be reached, without actually trying to connect to
- it.
- This may return %TRUE even when #GNetworkMonitor:network-available
- is %FALSE, if, for example, @monitor can determine that
- @connectable refers to a host on a local network.
- If @monitor believes that an attempt to connect to @connectable
- will succeed, it will return %TRUE. Otherwise, it will return
- %FALSE and set @error to an appropriate error (such as
- %G_IO_ERROR_HOST_UNREACHABLE).
- Note that although this does not attempt to connect to
- @connectable, it may still block for a brief period of time (eg,
- trying to do multicast DNS on the local network), so if you do not
- want to block, you should use g_network_monitor_can_reach_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @connectable is reachable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_reach_async"
- c:identifier="g_network_monitor_can_reach_async">
- <doc xml:space="preserve">Asynchronously attempts to determine whether or not the host
- pointed to by @connectable can be reached, without actually
- trying to connect to it.
- For more details, see g_network_monitor_can_reach().
- When the operation is finished, @callback will be called.
- You can then call g_network_monitor_can_reach_finish()
- to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_reach_finish"
- c:identifier="g_network_monitor_can_reach_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an async network connectivity test.
- See g_network_monitor_can_reach_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if network is reachable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_connectivity"
- c:identifier="g_network_monitor_get_connectivity"
- version="2.44">
- <doc xml:space="preserve">Gets a more detailed networking state than
- g_network_monitor_get_network_available().
- If #GNetworkMonitor:network-available is %FALSE, then the
- connectivity state will be %G_NETWORK_CONNECTIVITY_LOCAL.
- If #GNetworkMonitor:network-available is %TRUE, then the
- connectivity state will be %G_NETWORK_CONNECTIVITY_FULL (if there
- is full Internet connectivity), %G_NETWORK_CONNECTIVITY_LIMITED (if
- the host has a default route, but appears to be unable to actually
- reach the full Internet), or %G_NETWORK_CONNECTIVITY_PORTAL (if the
- host is trapped behind a "captive portal" that requires some sort
- of login or acknowledgement before allowing full Internet access).
- Note that in the case of %G_NETWORK_CONNECTIVITY_LIMITED and
- %G_NETWORK_CONNECTIVITY_PORTAL, it is possible that some sites are
- reachable but others are not. In this case, applications can
- attempt to connect to remote servers, but should gracefully fall
- back to their "offline" behavior if the connection attempt fails.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the network connectivity state</doc>
- <type name="NetworkConnectivity" c:type="GNetworkConnectivity"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">the #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_network_available"
- c:identifier="g_network_monitor_get_network_available"
- version="2.32">
- <doc xml:space="preserve">Checks if the network is available. "Available" here means that the
- system has a default route available for at least one of IPv4 or
- IPv6. It does not necessarily imply that the public Internet is
- reachable. See #GNetworkMonitor:network-available for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the network is available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">the #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_network_metered"
- c:identifier="g_network_monitor_get_network_metered"
- version="2.46">
- <doc xml:space="preserve">Checks if the network is metered.
- See #GNetworkMonitor:network-metered for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the connection is metered</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">the #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="connectivity" version="2.44" transfer-ownership="none">
- <doc xml:space="preserve">More detailed information about the host's network connectivity.
- See g_network_monitor_get_connectivity() and
- #GNetworkConnectivity for more details.</doc>
- <type name="NetworkConnectivity"/>
- </property>
- <property name="network-available"
- version="2.32"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether the network is considered available. That is, whether the
- system has a default route for at least one of IPv4 or IPv6.
- Real-world networks are of course much more complicated than
- this; the machine may be connected to a wifi hotspot that
- requires payment before allowing traffic through, or may be
- connected to a functioning router that has lost its own upstream
- connectivity. Some hosts might only be accessible when a VPN is
- active. Other hosts might only be accessible when the VPN is
- not active. Thus, it is best to use g_network_monitor_can_reach()
- or g_network_monitor_can_reach_async() to test for reachability
- on a host-by-host basis. (On the other hand, when the property is
- %FALSE, the application can reasonably expect that no remote
- hosts at all are reachable, and should indicate this to the user
- in its UI.)
- See also #GNetworkMonitor::network-changed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="network-metered"
- version="2.46"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether the network is considered metered. That is, whether the
- system has traffic flowing through the default connection that is
- subject to limitations set by service providers. For example, traffic
- might be billed by the amount of data transmitted, or there might be a
- quota on the amount of traffic per month. This is typical with tethered
- connections (3G and 4G) and in such situations, bandwidth intensive
- applications may wish to avoid network activity where possible if it will
- cost the user money or use up their limited quota.
- If more information is required about specific devices then the
- system network management API should be used instead (for example,
- NetworkManager or ConnMan).
- If this information is not available then no networks will be
- marked as metered.
- See also #GNetworkMonitor:network-available.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <glib:signal name="network-changed" when="last" version="2.32">
- <doc xml:space="preserve">Emitted when the network configuration changes. If @available is
- %TRUE, then some hosts may be reachable that were not reachable
- before, while others that were reachable before may no longer be
- reachable. If @available is %FALSE, then no remote hosts are
- reachable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="available" transfer-ownership="none">
- <doc xml:space="preserve">the current value of #GNetworkMonitor:network-available</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="NetworkMonitorInterface"
- c:type="GNetworkMonitorInterface"
- glib:is-gtype-struct-for="NetworkMonitor"
- version="2.32">
- <doc xml:space="preserve">The virtual function table for #GNetworkMonitor.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="network_changed">
- <callback name="network_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="monitor" transfer-ownership="none">
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </parameter>
- <parameter name="available" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_reach">
- <callback name="can_reach" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @connectable is reachable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_reach_async">
- <callback name="can_reach_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the
- request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_reach_finish">
- <callback name="can_reach_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if network is reachable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="NetworkService"
- c:symbol-prefix="network_service"
- c:type="GNetworkService"
- parent="GObject.Object"
- glib:type-name="GNetworkService"
- glib:get-type="g_network_service_get_type"
- glib:type-struct="NetworkServiceClass">
- <doc xml:space="preserve">Like #GNetworkAddress does with hostnames, #GNetworkService
- provides an easy way to resolve a SRV record, and then attempt to
- connect to one of the hosts that implements that service, handling
- service priority/weighting, multiple IP addresses, and multiple
- address families.
- See #GSrvTarget for more information about SRV records, and see
- #GSocketConnectable for and example of using the connectable
- interface.</doc>
- <implements name="SocketConnectable"/>
- <constructor name="new"
- c:identifier="g_network_service_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GNetworkService representing the given @service,
- @protocol, and @domain. This will initially be unresolved; use the
- #GSocketConnectable interface to resolve it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GNetworkService</doc>
- <type name="NetworkService" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">the service type to look up (eg, "ldap")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">the networking protocol to use for @service (eg, "tcp")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">the DNS domain to look up the service in</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_domain"
- c:identifier="g_network_service_get_domain"
- version="2.22">
- <doc xml:space="preserve">Gets the domain that @srv serves. This might be either UTF-8 or
- ASCII-encoded, depending on what @srv was created with.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@srv's domain name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="srv" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkService</doc>
- <type name="NetworkService" c:type="GNetworkService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_protocol"
- c:identifier="g_network_service_get_protocol"
- version="2.22">
- <doc xml:space="preserve">Gets @srv's protocol name (eg, "tcp").</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@srv's protocol name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="srv" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkService</doc>
- <type name="NetworkService" c:type="GNetworkService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_scheme"
- c:identifier="g_network_service_get_scheme"
- version="2.26">
- <doc xml:space="preserve">Get's the URI scheme used to resolve proxies. By default, the service name
- is used as scheme.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@srv's scheme name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="srv" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkService</doc>
- <type name="NetworkService" c:type="GNetworkService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_service"
- c:identifier="g_network_service_get_service"
- version="2.22">
- <doc xml:space="preserve">Gets @srv's service name (eg, "ldap").</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@srv's service name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="srv" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkService</doc>
- <type name="NetworkService" c:type="GNetworkService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_scheme"
- c:identifier="g_network_service_set_scheme"
- version="2.26">
- <doc xml:space="preserve">Set's the URI scheme used to resolve proxies. By default, the service name
- is used as scheme.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="srv" transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkService</doc>
- <type name="NetworkService" c:type="GNetworkService*"/>
- </instance-parameter>
- <parameter name="scheme" transfer-ownership="none">
- <doc xml:space="preserve">a URI scheme</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="domain"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="protocol"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="scheme" writable="1" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="service"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="NetworkServicePrivate" c:type="GNetworkServicePrivate*"/>
- </field>
- </class>
- <record name="NetworkServiceClass"
- c:type="GNetworkServiceClass"
- glib:is-gtype-struct-for="NetworkService">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <record name="NetworkServicePrivate"
- c:type="GNetworkServicePrivate"
- disguised="1">
- </record>
- <class name="Notification"
- c:symbol-prefix="notification"
- c:type="GNotification"
- version="2.40"
- parent="GObject.Object"
- glib:type-name="GNotification"
- glib:get-type="g_notification_get_type">
- <doc xml:space="preserve">#GNotification is a mechanism for creating a notification to be shown
- to the user -- typically as a pop-up notification presented by the
- desktop environment shell.
- The key difference between #GNotification and other similar APIs is
- that, if supported by the desktop environment, notifications sent
- with #GNotification will persist after the application has exited,
- and even across system reboots.
- Since the user may click on a notification while the application is
- not running, applications using #GNotification should be able to be
- started as a D-Bus service, using #GApplication.
- User interaction with a notification (either the default action, or
- buttons) must be associated with actions on the application (ie:
- "app." actions). It is not possible to route user interaction
- through the notification itself, because the object will not exist if
- the application is autostarted as a result of a notification being
- clicked.
- A notification can be sent with g_application_send_notification().</doc>
- <constructor name="new" c:identifier="g_notification_new" version="2.40">
- <doc xml:space="preserve">Creates a new #GNotification with @title as its title.
- After populating @notification with more details, it can be sent to
- the desktop shell with g_application_send_notification(). Changing
- any properties after this call will not have any effect until
- resending @notification.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GNotification instance</doc>
- <type name="Notification" c:type="GNotification*"/>
- </return-value>
- <parameters>
- <parameter name="title" transfer-ownership="none">
- <doc xml:space="preserve">the title of the notification</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add_button"
- c:identifier="g_notification_add_button"
- version="2.40">
- <doc xml:space="preserve">Adds a button to @notification that activates the action in
- @detailed_action when clicked. That action must be an
- application-wide action (starting with "app."). If @detailed_action
- contains a target, the action will be activated with that target as
- its parameter.
- See g_action_parse_detailed_name() for a description of the format
- for @detailed_action.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="label" transfer-ownership="none">
- <doc xml:space="preserve">label of the button</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="detailed_action" transfer-ownership="none">
- <doc xml:space="preserve">a detailed action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_button_with_target"
- c:identifier="g_notification_add_button_with_target"
- shadowed-by="add_button_with_target_value"
- version="2.40"
- introspectable="0">
- <doc xml:space="preserve">Adds a button to @notification that activates @action when clicked.
- @action must be an application-wide action (it must start with "app.").
- If @target_format is given, it is used to collect remaining
- positional parameters into a #GVariant instance, similar to
- g_variant_new(). @action will be activated with that #GVariant as its
- parameter.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="label" transfer-ownership="none">
- <doc xml:space="preserve">label of the button</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">an action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target_format"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant format string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">positional parameters, as determined by @target_format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="add_button_with_target_value"
- c:identifier="g_notification_add_button_with_target_value"
- shadows="add_button_with_target"
- version="2.40">
- <doc xml:space="preserve">Adds a button to @notification that activates @action when clicked.
- @action must be an application-wide action (it must start with "app.").
- If @target is non-%NULL, @action will be activated with @target as
- its parameter.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="label" transfer-ownership="none">
- <doc xml:space="preserve">label of the button</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">an action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant to use as @action's parameter, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_body"
- c:identifier="g_notification_set_body"
- version="2.40">
- <doc xml:space="preserve">Sets the body of @notification to @body.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="body"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the new body for @notification, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default_action"
- c:identifier="g_notification_set_default_action"
- version="2.40">
- <doc xml:space="preserve">Sets the default action of @notification to @detailed_action. This
- action is activated when the notification is clicked on.
- The action in @detailed_action must be an application-wide action (it
- must start with "app."). If @detailed_action contains a target, the
- given action will be activated with that target as its parameter.
- See g_action_parse_detailed_name() for a description of the format
- for @detailed_action.
- When no default action is set, the application that the notification
- was sent on is activated.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="detailed_action" transfer-ownership="none">
- <doc xml:space="preserve">a detailed action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default_action_and_target"
- c:identifier="g_notification_set_default_action_and_target"
- shadowed-by="set_default_action_and_target_value"
- version="2.40"
- introspectable="0">
- <doc xml:space="preserve">Sets the default action of @notification to @action. This action is
- activated when the notification is clicked on. It must be an
- application-wide action (it must start with "app.").
- If @target_format is given, it is used to collect remaining
- positional parameters into a #GVariant instance, similar to
- g_variant_new(). @action will be activated with that #GVariant as its
- parameter.
- When no default action is set, the application that the notification
- was sent on is activated.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">an action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target_format"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant format string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">positional parameters, as determined by @target_format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default_action_and_target_value"
- c:identifier="g_notification_set_default_action_and_target_value"
- shadows="set_default_action_and_target"
- version="2.40">
- <doc xml:space="preserve">Sets the default action of @notification to @action. This action is
- activated when the notification is clicked on. It must be an
- application-wide action (start with "app.").
- If @target is non-%NULL, @action will be activated with @target as
- its parameter.
- When no default action is set, the application that the notification
- was sent on is activated.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">an action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant to use as @action's parameter, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_icon"
- c:identifier="g_notification_set_icon"
- version="2.40">
- <doc xml:space="preserve">Sets the icon of @notification to @icon.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">the icon to be shown in @notification, as a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_priority" c:identifier="g_notification_set_priority">
- <doc xml:space="preserve">Sets the priority of @notification to @priority. See
- #GNotificationPriority for possible values.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotificationPriority</doc>
- <type name="NotificationPriority" c:type="GNotificationPriority"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_title"
- c:identifier="g_notification_set_title"
- version="2.40">
- <doc xml:space="preserve">Sets the title of @notification to @title.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="title" transfer-ownership="none">
- <doc xml:space="preserve">the new title for @notification</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_urgent"
- c:identifier="g_notification_set_urgent"
- version="2.40">
- <doc xml:space="preserve">Deprecated in favor of g_notification_set_priority().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="notification" transfer-ownership="none">
- <doc xml:space="preserve">a #GNotification</doc>
- <type name="Notification" c:type="GNotification*"/>
- </instance-parameter>
- <parameter name="urgent" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @notification is urgent</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <enumeration name="NotificationPriority"
- version="2.42"
- glib:type-name="GNotificationPriority"
- glib:get-type="g_notification_priority_get_type"
- c:type="GNotificationPriority">
- <doc xml:space="preserve">Priority levels for #GNotifications.</doc>
- <member name="normal"
- value="0"
- c:identifier="G_NOTIFICATION_PRIORITY_NORMAL"
- glib:nick="normal">
- <doc xml:space="preserve">the default priority, to be used for the
- majority of notifications (for example email messages, software updates,
- completed download/sync operations)</doc>
- </member>
- <member name="low"
- value="1"
- c:identifier="G_NOTIFICATION_PRIORITY_LOW"
- glib:nick="low">
- <doc xml:space="preserve">for notifications that do not require
- immediate attention - typically used for contextual background
- information, such as contact birthdays or local weather</doc>
- </member>
- <member name="high"
- value="2"
- c:identifier="G_NOTIFICATION_PRIORITY_HIGH"
- glib:nick="high">
- <doc xml:space="preserve">for events that require more attention,
- usually because responses are time-sensitive (for example chat and SMS
- messages or alarms)</doc>
- </member>
- <member name="urgent"
- value="3"
- c:identifier="G_NOTIFICATION_PRIORITY_URGENT"
- glib:nick="urgent">
- <doc xml:space="preserve">for urgent notifications, or notifications
- that require a response in a short space of time (for example phone calls
- or emergency warnings)</doc>
- </member>
- </enumeration>
- <record name="OutputMessage" c:type="GOutputMessage" version="2.44">
- <doc xml:space="preserve">Structure used for scatter/gather data output when sending multiple
- messages or packets in one go. You generally pass in an array of
- #GOutputVectors and the operation will use all the buffers as if they
- were one buffer.
- If @address is %NULL then the message is sent to the default receiver
- (as previously set by g_socket_connect()).</doc>
- <field name="address" writable="1">
- <doc xml:space="preserve">a #GSocketAddress, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </field>
- <field name="vectors" writable="1">
- <doc xml:space="preserve">pointer to an array of output vectors</doc>
- <type name="OutputVector" c:type="GOutputVector*"/>
- </field>
- <field name="num_vectors" writable="1">
- <doc xml:space="preserve">the number of output vectors pointed to by @vectors.</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="bytes_sent" writable="1">
- <doc xml:space="preserve">initialize to 0. Will be set to the number of bytes
- that have been sent</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="control_messages" writable="1">
- <doc xml:space="preserve">a pointer
- to an array of #GSocketControlMessages, or %NULL.</doc>
- <array length="5" zero-terminated="0" c:type="GSocketControlMessage**">
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </array>
- </field>
- <field name="num_control_messages" writable="1">
- <doc xml:space="preserve">number of elements in @control_messages.</doc>
- <type name="guint" c:type="guint"/>
- </field>
- </record>
- <class name="OutputStream"
- c:symbol-prefix="output_stream"
- c:type="GOutputStream"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GOutputStream"
- glib:get-type="g_output_stream_get_type"
- glib:type-struct="OutputStreamClass">
- <doc xml:space="preserve">#GOutputStream has functions to write to a stream (g_output_stream_write()),
- to close a stream (g_output_stream_close()) and to flush pending writes
- (g_output_stream_flush()).
- To copy the content of an input stream to an output stream without
- manually handling the reads and writes, use g_output_stream_splice().
- See the documentation for #GIOStream for details of thread safety of
- streaming APIs.
- All of these functions have async variants too.</doc>
- <virtual-method name="close_async" invoker="close_async">
- <doc xml:space="preserve">Requests an asynchronous close of the stream, releasing resources
- related to it. When the operation is finished @callback will be
- called. You can then call g_output_stream_close_finish() to get
- the result of the operation.
- For behaviour details see g_output_stream_close().
- The asyncronous methods have a default fallback that uses threads
- to implement asynchronicity, so they are optional for inheriting
- classes. However, if you override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_finish" invoker="close_finish" throws="1">
- <doc xml:space="preserve">Closes an output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if stream was successfully closed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush" invoker="flush" throws="1">
- <doc xml:space="preserve">Forces a write of all user-space buffered data for the given
- @stream. Will block during the operation. Closing the stream will
- implicitly cause a flush.
- This function is optional for inherited classes.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush_async" invoker="flush_async">
- <doc xml:space="preserve">Forces an asynchronous write of all user-space buffered data for
- the given @stream.
- For behaviour details see g_output_stream_flush().
- When the operation is finished @callback will be
- called. You can then call g_output_stream_flush_finish() to get the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush_finish" invoker="flush_finish" throws="1">
- <doc xml:space="preserve">Finishes flushing an output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if flush operation succeeded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="splice" invoker="splice" throws="1">
- <doc xml:space="preserve">Splices an input stream into an output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the size of the data spliced, or
- -1 if an error occurred. Note that if the number of bytes
- spliced is greater than %G_MAXSSIZE, then that will be
- returned, and there is no way to determine the actual number
- of bytes spliced.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GOutputStreamSpliceFlags.</doc>
- <type name="OutputStreamSpliceFlags"
- c:type="GOutputStreamSpliceFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="splice_async" invoker="splice_async">
- <doc xml:space="preserve">Splices a stream asynchronously.
- When the operation is finished @callback will be called.
- You can then call g_output_stream_splice_finish() to get the
- result of the operation.
- For the synchronous, blocking version of this function, see
- g_output_stream_splice().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GOutputStreamSpliceFlags.</doc>
- <type name="OutputStreamSpliceFlags"
- c:type="GOutputStreamSpliceFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="splice_finish" invoker="splice_finish" throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream splice operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize of the number of bytes spliced. Note that if the
- number of bytes spliced is greater than %G_MAXSSIZE, then that
- will be returned, and there is no way to determine the actual
- number of bytes spliced.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="write_async" invoker="write_async">
- <doc xml:space="preserve">Request an asynchronous write of @count bytes from @buffer into
- the stream. When the operation is finished @callback will be called.
- You can then call g_output_stream_write_finish() to get the result of the
- operation.
- During an async request no other sync and async calls are allowed,
- and will result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a
- %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes written will be passed to the
- @callback. It is not an error if this is not the same as the
- requested size, as it can happen e.g. on a partial I/O error,
- but generally we try to write as many bytes as requested.
- You are guaranteed that this method will never fail with
- %G_IO_ERROR_WOULD_BLOCK - if @stream can't accept more data, the
- method will just wait until this changes.
- Any outstanding I/O request with higher priority (lower numerical
- value) will be executed before an outstanding request with lower
- priority. Default priority is %G_PRIORITY_DEFAULT.
- The asyncronous methods have a default fallback that uses threads
- to implement asynchronicity, so they are optional for inheriting
- classes. However, if you override one you must override all.
- For the synchronous, blocking version of this function, see
- g_output_stream_write().
- Note that no copy of @buffer will be made, so it must stay valid
- until @callback is called. See g_output_stream_write_bytes_async()
- for a #GBytes version that will automatically hold a reference to
- the contents (without copying) for the duration of the call.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="write_finish" invoker="write_finish" throws="1">
- <doc xml:space="preserve">Finishes a stream write operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the number of bytes written to the stream.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="write_fn" invoker="write" throws="1">
- <doc xml:space="preserve">Tries to write @count bytes from @buffer into the stream. Will block
- during the operation.
- If count is 0, returns 0 and does nothing. A value of @count
- larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes written to the stream is returned.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. on a partial I/O error, or if there is not enough
- storage in the stream. All writes block until at least one byte
- is written or an error occurs; 0 is never returned (unless
- @count is 0).
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="clear_pending"
- c:identifier="g_output_stream_clear_pending">
- <doc xml:space="preserve">Clears the pending flag on @stream.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">output stream</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="close" c:identifier="g_output_stream_close" throws="1">
- <doc xml:space="preserve">Closes the stream, releasing resources related to it.
- Once the stream is closed, all other operations will return %G_IO_ERROR_CLOSED.
- Closing a stream multiple times will not return an error.
- Closing a stream will automatically flush any outstanding buffers in the
- stream.
- Streams will be automatically closed when the last reference
- is dropped, but you might want to call this function to make sure
- resources are released as early as possible.
- Some streams might keep the backing store of the stream (e.g. a file descriptor)
- open after the stream is closed. See the documentation for the individual
- stream for details.
- On failure the first error that happened will be reported, but the close
- operation will finish as much as possible. A stream that failed to
- close will still return %G_IO_ERROR_CLOSED for all operations. Still, it
- is important to check and report the error to the user, otherwise
- there might be a loss of data as all data might not be written.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- Cancelling a close will still leave the stream closed, but there some streams
- can use a faster close that doesn't block to e.g. check errors. On
- cancellation (as with any error) there is no guarantee that all written
- data will reach the target.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_async" c:identifier="g_output_stream_close_async">
- <doc xml:space="preserve">Requests an asynchronous close of the stream, releasing resources
- related to it. When the operation is finished @callback will be
- called. You can then call g_output_stream_close_finish() to get
- the result of the operation.
- For behaviour details see g_output_stream_close().
- The asyncronous methods have a default fallback that uses threads
- to implement asynchronicity, so they are optional for inheriting
- classes. However, if you override one you must override all.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="close_finish"
- c:identifier="g_output_stream_close_finish"
- throws="1">
- <doc xml:space="preserve">Closes an output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if stream was successfully closed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush" c:identifier="g_output_stream_flush" throws="1">
- <doc xml:space="preserve">Forces a write of all user-space buffered data for the given
- @stream. Will block during the operation. Closing the stream will
- implicitly cause a flush.
- This function is optional for inherited classes.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush_async" c:identifier="g_output_stream_flush_async">
- <doc xml:space="preserve">Forces an asynchronous write of all user-space buffered data for
- the given @stream.
- For behaviour details see g_output_stream_flush().
- When the operation is finished @callback will be
- called. You can then call g_output_stream_flush_finish() to get the
- result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="flush_finish"
- c:identifier="g_output_stream_flush_finish"
- throws="1">
- <doc xml:space="preserve">Finishes flushing an output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if flush operation succeeded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_pending" c:identifier="g_output_stream_has_pending">
- <doc xml:space="preserve">Checks if an ouput stream has pending actions.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream has pending actions.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closed" c:identifier="g_output_stream_is_closed">
- <doc xml:space="preserve">Checks if an output stream has already been closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is closed. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closing"
- c:identifier="g_output_stream_is_closing"
- version="2.24">
- <doc xml:space="preserve">Checks if an output stream is being closed. This can be
- used inside e.g. a flush implementation to see if the
- flush (or other i/o operation) is called from within
- the closing operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is being closed. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="printf"
- c:identifier="g_output_stream_printf"
- version="2.40"
- introspectable="0">
- <doc xml:space="preserve">This is a utility function around g_output_stream_write_all(). It
- uses g_strdup_vprintf() to turn @format and @... into a string that
- is then written to @stream.
- See the documentation of g_output_stream_write_all() about the
- behavior of the actual write operation.
- Note that partial writes cannot be properly checked with this
- function due to the variable length of the written string, if you
- need precise control over partial write failures, you need to
- create you own printf()-like wrapper around g_output_stream_write()
- or g_output_stream_write_all().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was
- written to the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">location to store the error occurring, or %NULL to ignore</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format string. See the printf() documentation</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">the parameters to insert into the format string</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_pending"
- c:identifier="g_output_stream_set_pending"
- throws="1">
- <doc xml:space="preserve">Sets @stream to have actions pending. If the pending flag is
- already set or @stream is closed, it will return %FALSE and set
- @error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if pending was previously unset and is now set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="splice" c:identifier="g_output_stream_splice" throws="1">
- <doc xml:space="preserve">Splices an input stream into an output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the size of the data spliced, or
- -1 if an error occurred. Note that if the number of bytes
- spliced is greater than %G_MAXSSIZE, then that will be
- returned, and there is no way to determine the actual number
- of bytes spliced.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GOutputStreamSpliceFlags.</doc>
- <type name="OutputStreamSpliceFlags"
- c:type="GOutputStreamSpliceFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="splice_async" c:identifier="g_output_stream_splice_async">
- <doc xml:space="preserve">Splices a stream asynchronously.
- When the operation is finished @callback will be called.
- You can then call g_output_stream_splice_finish() to get the
- result of the operation.
- For the synchronous, blocking version of this function, see
- g_output_stream_splice().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GOutputStreamSpliceFlags.</doc>
- <type name="OutputStreamSpliceFlags"
- c:type="GOutputStreamSpliceFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="splice_finish"
- c:identifier="g_output_stream_splice_finish"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream splice operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize of the number of bytes spliced. Note that if the
- number of bytes spliced is greater than %G_MAXSSIZE, then that
- will be returned, and there is no way to determine the actual
- number of bytes spliced.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="vprintf"
- c:identifier="g_output_stream_vprintf"
- version="2.40"
- introspectable="0">
- <doc xml:space="preserve">This is a utility function around g_output_stream_write_all(). It
- uses g_strdup_vprintf() to turn @format and @args into a string that
- is then written to @stream.
- See the documentation of g_output_stream_write_all() about the
- behavior of the actual write operation.
- Note that partial writes cannot be properly checked with this
- function due to the variable length of the written string, if you
- need precise control over partial write failures, you need to
- create you own printf()-like wrapper around g_output_stream_write()
- or g_output_stream_write_all().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was
- written to the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">location to store the error occurring, or %NULL to ignore</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format string. See the printf() documentation</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">the parameters to insert into the format string</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="write" c:identifier="g_output_stream_write" throws="1">
- <doc xml:space="preserve">Tries to write @count bytes from @buffer into the stream. Will block
- during the operation.
- If count is 0, returns 0 and does nothing. A value of @count
- larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes written to the stream is returned.
- It is not an error if this is not the same as the requested size, as it
- can happen e.g. on a partial I/O error, or if there is not enough
- storage in the stream. All writes block until at least one byte
- is written or an error occurs; 0 is never returned (unless
- @count is 0).
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_all"
- c:identifier="g_output_stream_write_all"
- throws="1">
- <doc xml:space="preserve">Tries to write @count bytes from @buffer into the stream. Will block
- during the operation.
- This function is similar to g_output_stream_write(), except it tries to
- write as many bytes as requested, only stopping on an error.
- On a successful write of @count bytes, %TRUE is returned, and @bytes_written
- is set to @count.
- If there is an error during the operation %FALSE is returned and @error
- is set to indicate the error status.
- As a special exception to the normal conventions for functions that
- use #GError, if this function returns %FALSE (and sets @error) then
- @bytes_written will be set to the number of bytes that were
- successfully written before the error was encountered. This
- functionality is only available from C. If you need it from another
- language then you must write your own loop around
- g_output_stream_write().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was
- written to the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_all_async"
- c:identifier="g_output_stream_write_all_async"
- version="2.44">
- <doc xml:space="preserve">Request an asynchronous write of @count bytes from @buffer into
- the stream. When the operation is finished @callback will be called.
- You can then call g_output_stream_write_all_finish() to get the result of the
- operation.
- This is the asynchronous version of g_output_stream_write_all().
- Call g_output_stream_write_all_finish() to collect the result.
- Any outstanding I/O request with higher priority (lower numerical
- value) will be executed before an outstanding request with lower
- priority. Default priority is %G_PRIORITY_DEFAULT.
- Note that no copy of @buffer will be made, so it must stay valid
- until @callback is called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer containing the data to write</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_all_finish"
- c:identifier="g_output_stream_write_all_finish"
- version="2.44"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous stream write operation started with
- g_output_stream_write_all_async().
- As a special exception to the normal conventions for functions that
- use #GError, if this function returns %FALSE (and sets @error) then
- @bytes_written will be set to the number of bytes that were
- successfully written before the error was encountered. This
- functionality is only available from C. If you need it from another
- language then you must write your own loop around
- g_output_stream_write_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was written to the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_async" c:identifier="g_output_stream_write_async">
- <doc xml:space="preserve">Request an asynchronous write of @count bytes from @buffer into
- the stream. When the operation is finished @callback will be called.
- You can then call g_output_stream_write_finish() to get the result of the
- operation.
- During an async request no other sync and async calls are allowed,
- and will result in %G_IO_ERROR_PENDING errors.
- A value of @count larger than %G_MAXSSIZE will cause a
- %G_IO_ERROR_INVALID_ARGUMENT error.
- On success, the number of bytes written will be passed to the
- @callback. It is not an error if this is not the same as the
- requested size, as it can happen e.g. on a partial I/O error,
- but generally we try to write as many bytes as requested.
- You are guaranteed that this method will never fail with
- %G_IO_ERROR_WOULD_BLOCK - if @stream can't accept more data, the
- method will just wait until this changes.
- Any outstanding I/O request with higher priority (lower numerical
- value) will be executed before an outstanding request with lower
- priority. Default priority is %G_PRIORITY_DEFAULT.
- The asyncronous methods have a default fallback that uses threads
- to implement asynchronicity, so they are optional for inheriting
- classes. However, if you override one you must override all.
- For the synchronous, blocking version of this function, see
- g_output_stream_write().
- Note that no copy of @buffer will be made, so it must stay valid
- until @callback is called. See g_output_stream_write_bytes_async()
- for a #GBytes version that will automatically hold a reference to
- the contents (without copying) for the duration of the call.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_bytes"
- c:identifier="g_output_stream_write_bytes"
- throws="1">
- <doc xml:space="preserve">A wrapper function for g_output_stream_write() which takes a
- #GBytes as input. This can be more convenient for use by language
- bindings or in other cases where the refcounted nature of #GBytes
- is helpful over a bare pointer interface.
- However, note that this function may still perform partial writes,
- just like g_output_stream_write(). If that occurs, to continue
- writing, you will need to create a new #GBytes containing just the
- remaining bytes, using g_bytes_new_from_bytes(). Passing the same
- #GBytes instance multiple times potentially can result in duplicated
- data in the output stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="bytes" transfer-ownership="none">
- <doc xml:space="preserve">the #GBytes to write</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_bytes_async"
- c:identifier="g_output_stream_write_bytes_async">
- <doc xml:space="preserve">This function is similar to g_output_stream_write_async(), but
- takes a #GBytes as input. Due to the refcounted nature of #GBytes,
- this allows the stream to avoid taking a copy of the data.
- However, note that this function may still perform partial writes,
- just like g_output_stream_write_async(). If that occurs, to continue
- writing, you will need to create a new #GBytes containing just the
- remaining bytes, using g_bytes_new_from_bytes(). Passing the same
- #GBytes instance multiple times potentially can result in duplicated
- data in the output stream.
- For the synchronous, blocking version of this function, see
- g_output_stream_write_bytes().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="bytes" transfer-ownership="none">
- <doc xml:space="preserve">The bytes to write</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_bytes_finish"
- c:identifier="g_output_stream_write_bytes_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a stream write-from-#GBytes operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the number of bytes written to the stream.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_finish"
- c:identifier="g_output_stream_write_finish"
- throws="1">
- <doc xml:space="preserve">Finishes a stream write operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the number of bytes written to the stream.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="OutputStreamPrivate" c:type="GOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="OutputStreamClass"
- c:type="GOutputStreamClass"
- glib:is-gtype-struct-for="OutputStream">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="write_fn">
- <callback name="write_fn" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="splice">
- <callback name="splice" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the size of the data spliced, or
- -1 if an error occurred. Note that if the number of bytes
- spliced is greater than %G_MAXSSIZE, then that will be
- returned, and there is no way to determine the actual number
- of bytes spliced.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GOutputStreamSpliceFlags.</doc>
- <type name="OutputStreamSpliceFlags"
- c:type="GOutputStreamSpliceFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush">
- <callback name="flush" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_fn">
- <callback name="close_fn" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="write_async">
- <callback name="write_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the buffer containing the data to write.</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="write_finish">
- <callback name="write_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize containing the number of bytes written to the stream.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="splice_async">
- <callback name="splice_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of #GOutputStreamSpliceFlags.</doc>
- <type name="OutputStreamSpliceFlags"
- c:type="GOutputStreamSpliceFlags"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="splice_finish">
- <callback name="splice_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gssize of the number of bytes spliced. Note that if the
- number of bytes spliced is greater than %G_MAXSSIZE, then that
- will be returned, and there is no way to determine the actual
- number of bytes spliced.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush_async">
- <callback name="flush_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush_finish">
- <callback name="flush_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if flush operation succeeded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_async">
- <callback name="close_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">A #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional cancellable object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close_finish">
- <callback name="close_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if stream was successfully closed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved7" introspectable="0">
- <callback name="_g_reserved7">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved8" introspectable="0">
- <callback name="_g_reserved8">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="OutputStreamPrivate"
- c:type="GOutputStreamPrivate"
- disguised="1">
- </record>
- <bitfield name="OutputStreamSpliceFlags"
- glib:type-name="GOutputStreamSpliceFlags"
- glib:get-type="g_output_stream_splice_flags_get_type"
- c:type="GOutputStreamSpliceFlags">
- <doc xml:space="preserve">GOutputStreamSpliceFlags determine how streams should be spliced.</doc>
- <member name="none"
- value="0"
- c:identifier="G_OUTPUT_STREAM_SPLICE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">Do not close either stream.</doc>
- </member>
- <member name="close_source"
- value="1"
- c:identifier="G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE"
- glib:nick="close-source">
- <doc xml:space="preserve">Close the source stream after
- the splice.</doc>
- </member>
- <member name="close_target"
- value="2"
- c:identifier="G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET"
- glib:nick="close-target">
- <doc xml:space="preserve">Close the target stream after
- the splice.</doc>
- </member>
- </bitfield>
- <record name="OutputVector" c:type="GOutputVector" version="2.22">
- <doc xml:space="preserve">Structure used for scatter/gather data output.
- You generally pass in an array of #GOutputVectors
- and the operation will use all the buffers as if they were
- one buffer.</doc>
- <field name="buffer" writable="1">
- <doc xml:space="preserve">Pointer to a buffer of data to read.</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the size of @buffer.</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- </record>
- <constant name="PROXY_EXTENSION_POINT_NAME"
- value="gio-proxy"
- c:type="G_PROXY_EXTENSION_POINT_NAME"
- version="2.26">
- <doc xml:space="preserve">Extension point for proxy functionality.
- See [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="PROXY_RESOLVER_EXTENSION_POINT_NAME"
- value="gio-proxy-resolver"
- c:type="G_PROXY_RESOLVER_EXTENSION_POINT_NAME">
- <doc xml:space="preserve">Extension point for proxy resolving functionality.
- See [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <enumeration name="PasswordSave"
- glib:type-name="GPasswordSave"
- glib:get-type="g_password_save_get_type"
- c:type="GPasswordSave">
- <doc xml:space="preserve">#GPasswordSave is used to indicate the lifespan of a saved password.
- #Gvfs stores passwords in the Gnome keyring when this flag allows it
- to, and later retrieves it again from there.</doc>
- <member name="never"
- value="0"
- c:identifier="G_PASSWORD_SAVE_NEVER"
- glib:nick="never">
- <doc xml:space="preserve">never save a password.</doc>
- </member>
- <member name="for_session"
- value="1"
- c:identifier="G_PASSWORD_SAVE_FOR_SESSION"
- glib:nick="for-session">
- <doc xml:space="preserve">save a password for the session.</doc>
- </member>
- <member name="permanently"
- value="2"
- c:identifier="G_PASSWORD_SAVE_PERMANENTLY"
- glib:nick="permanently">
- <doc xml:space="preserve">save a password permanently.</doc>
- </member>
- </enumeration>
- <class name="Permission"
- c:symbol-prefix="permission"
- c:type="GPermission"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GPermission"
- glib:get-type="g_permission_get_type"
- glib:type-struct="PermissionClass">
- <doc xml:space="preserve">A #GPermission represents the status of the caller's permission to
- perform a certain action.
- You can query if the action is currently allowed and if it is
- possible to acquire the permission so that the action will be allowed
- in the future.
- There is also an API to actually acquire the permission and one to
- release it.
- As an example, a #GPermission might represent the ability for the
- user to write to a #GSettings object. This #GPermission object could
- then be used to decide if it is appropriate to show a "Click here to
- unlock" button in a dialog and to provide the mechanism to invoke
- when that button is clicked.</doc>
- <virtual-method name="acquire"
- invoker="acquire"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Attempts to acquire the permission represented by @permission.
- The precise method by which this happens depends on the permission
- and the underlying authentication mechanism. A simple example is
- that a dialog may appear asking the user to enter their password.
- You should check with g_permission_get_can_acquire() before calling
- this function.
- If the permission is acquired then %TRUE is returned. Otherwise,
- %FALSE is returned and @error is set appropriately.
- This call is blocking, likely for a very long time (in the case that
- user interaction is required). See g_permission_acquire_async() for
- the non-blocking version.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully acquired</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="acquire_async"
- invoker="acquire_async"
- version="2.26">
- <doc xml:space="preserve">Attempts to acquire the permission represented by @permission.
- This is the first half of the asynchronous version of
- g_permission_acquire().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">the #GAsyncReadyCallback to call when done</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="acquire_finish"
- invoker="acquire_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Collects the result of attempting to acquire the permission
- represented by @permission.
- This is the second half of the asynchronous version of
- g_permission_acquire().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully acquired</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult given to the #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="release"
- invoker="release"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Attempts to release the permission represented by @permission.
- The precise method by which this happens depends on the permission
- and the underlying authentication mechanism. In most cases the
- permission will be dropped immediately without further action.
- You should check with g_permission_get_can_release() before calling
- this function.
- If the permission is released then %TRUE is returned. Otherwise,
- %FALSE is returned and @error is set appropriately.
- This call is blocking, likely for a very long time (in the case that
- user interaction is required). See g_permission_release_async() for
- the non-blocking version.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully released</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="release_async"
- invoker="release_async"
- version="2.26">
- <doc xml:space="preserve">Attempts to release the permission represented by @permission.
- This is the first half of the asynchronous version of
- g_permission_release().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">the #GAsyncReadyCallback to call when done</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="release_finish"
- invoker="release_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Collects the result of attempting to release the permission
- represented by @permission.
- This is the second half of the asynchronous version of
- g_permission_release().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully released</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult given to the #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="acquire"
- c:identifier="g_permission_acquire"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Attempts to acquire the permission represented by @permission.
- The precise method by which this happens depends on the permission
- and the underlying authentication mechanism. A simple example is
- that a dialog may appear asking the user to enter their password.
- You should check with g_permission_get_can_acquire() before calling
- this function.
- If the permission is acquired then %TRUE is returned. Otherwise,
- %FALSE is returned and @error is set appropriately.
- This call is blocking, likely for a very long time (in the case that
- user interaction is required). See g_permission_acquire_async() for
- the non-blocking version.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully acquired</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="acquire_async"
- c:identifier="g_permission_acquire_async"
- version="2.26">
- <doc xml:space="preserve">Attempts to acquire the permission represented by @permission.
- This is the first half of the asynchronous version of
- g_permission_acquire().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">the #GAsyncReadyCallback to call when done</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="acquire_finish"
- c:identifier="g_permission_acquire_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Collects the result of attempting to acquire the permission
- represented by @permission.
- This is the second half of the asynchronous version of
- g_permission_acquire().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully acquired</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult given to the #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_allowed"
- c:identifier="g_permission_get_allowed"
- version="2.26">
- <doc xml:space="preserve">Gets the value of the 'allowed' property. This property is %TRUE if
- the caller currently has permission to perform the action that
- @permission represents the permission to perform.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value of the 'allowed' property</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_can_acquire"
- c:identifier="g_permission_get_can_acquire"
- version="2.26">
- <doc xml:space="preserve">Gets the value of the 'can-acquire' property. This property is %TRUE
- if it is generally possible to acquire the permission by calling
- g_permission_acquire().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value of the 'can-acquire' property</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_can_release"
- c:identifier="g_permission_get_can_release"
- version="2.26">
- <doc xml:space="preserve">Gets the value of the 'can-release' property. This property is %TRUE
- if it is generally possible to release the permission by calling
- g_permission_release().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value of the 'can-release' property</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="impl_update"
- c:identifier="g_permission_impl_update"
- version="2.26">
- <doc xml:space="preserve">This function is called by the #GPermission implementation to update
- the properties of the permission. You should never call this
- function except from a #GPermission implementation.
- GObject notify signals are generated, as appropriate.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="allowed" transfer-ownership="none">
- <doc xml:space="preserve">the new value for the 'allowed' property</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="can_acquire" transfer-ownership="none">
- <doc xml:space="preserve">the new value for the 'can-acquire' property</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="can_release" transfer-ownership="none">
- <doc xml:space="preserve">the new value for the 'can-release' property</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="release"
- c:identifier="g_permission_release"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Attempts to release the permission represented by @permission.
- The precise method by which this happens depends on the permission
- and the underlying authentication mechanism. In most cases the
- permission will be dropped immediately without further action.
- You should check with g_permission_get_can_release() before calling
- this function.
- If the permission is released then %TRUE is returned. Otherwise,
- %FALSE is returned and @error is set appropriately.
- This call is blocking, likely for a very long time (in the case that
- user interaction is required). See g_permission_release_async() for
- the non-blocking version.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully released</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="release_async"
- c:identifier="g_permission_release_async"
- version="2.26">
- <doc xml:space="preserve">Attempts to release the permission represented by @permission.
- This is the first half of the asynchronous version of
- g_permission_release().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">the #GAsyncReadyCallback to call when done</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="release_finish"
- c:identifier="g_permission_release_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Collects the result of attempting to release the permission
- represented by @permission.
- This is the second half of the asynchronous version of
- g_permission_release().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully released</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult given to the #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <property name="allowed" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the caller currently has permission to perform the action that
- @permission represents the permission to perform.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="can-acquire" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is generally possible to acquire the permission by calling
- g_permission_acquire().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="can-release" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if it is generally possible to release the permission by calling
- g_permission_release().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="PermissionPrivate" c:type="GPermissionPrivate*"/>
- </field>
- </class>
- <record name="PermissionClass"
- c:type="GPermissionClass"
- glib:is-gtype-struct-for="Permission">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="acquire">
- <callback name="acquire" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully acquired</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="acquire_async">
- <callback name="acquire_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">the #GAsyncReadyCallback to call when done</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="acquire_finish">
- <callback name="acquire_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully acquired</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult given to the #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="release">
- <callback name="release" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully released</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="release_async">
- <callback name="release_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">the #GAsyncReadyCallback to call when done</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the user data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="release_finish">
- <callback name="release_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the permission was successfully released</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="permission" transfer-ownership="none">
- <doc xml:space="preserve">a #GPermission instance</doc>
- <type name="Permission" c:type="GPermission*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult given to the #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="16">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="PermissionPrivate" c:type="GPermissionPrivate" disguised="1">
- </record>
- <interface name="PollableInputStream"
- c:symbol-prefix="pollable_input_stream"
- c:type="GPollableInputStream"
- version="2.28"
- glib:type-name="GPollableInputStream"
- glib:get-type="g_pollable_input_stream_get_type"
- glib:type-struct="PollableInputStreamInterface">
- <doc xml:space="preserve">#GPollableInputStream is implemented by #GInputStreams that
- can be polled for readiness to read. This can be used when
- interfacing with a non-GIO API that expects
- UNIX-file-descriptor-style asynchronous I/O rather than GIO-style.</doc>
- <prerequisite name="InputStream"/>
- <virtual-method name="can_poll" invoker="can_poll" version="2.28">
- <doc xml:space="preserve">Checks if @stream is actually pollable. Some classes may implement
- #GPollableInputStream but have only certain instances of that class
- be pollable. If this method returns %FALSE, then the behavior of
- other #GPollableInputStream methods is undefined.
- For any given stream, the value returned by this method is constant;
- a stream cannot switch from pollable to non-pollable or vice versa.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is pollable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_source"
- invoker="create_source"
- version="2.28">
- <doc xml:space="preserve">Creates a #GSource that triggers when @stream can be read, or
- @cancellable is triggered or an error occurs. The callback on the
- source is of the #GPollableSourceFunc type.
- As with g_pollable_input_stream_is_readable(), it is possible that
- the stream may not actually be readable even after the source
- triggers, so you should use g_pollable_input_stream_read_nonblocking()
- rather than g_input_stream_read() from the callback.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_readable" invoker="is_readable" version="2.28">
- <doc xml:space="preserve">Checks if @stream can be read.
- Note that some stream types may not be able to implement this 100%
- reliably, and it is possible that a call to g_input_stream_read()
- after this returns %TRUE would still block. To guarantee
- non-blocking behavior, you should always use
- g_pollable_input_stream_read_nonblocking(), which will return a
- %G_IO_ERROR_WOULD_BLOCK error rather than blocking.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is readable, %FALSE if not. If an error
- has occurred on @stream, this will result in
- g_pollable_input_stream_is_readable() returning %TRUE, and the
- next attempt to read will return the error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_nonblocking"
- invoker="read_nonblocking"
- throws="1">
- <doc xml:space="preserve">Attempts to read up to @count bytes from @stream into @buffer, as
- with g_input_stream_read(). If @stream is not currently readable,
- this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
- use g_pollable_input_stream_create_source() to create a #GSource
- that will be triggered when @stream is readable.
- Note that since this method never blocks, you cannot actually
- use @cancellable to cancel it. However, it will return an error
- if @cancellable has already been cancelled when you call, which
- may happen if you call this method after a source triggers due
- to having been cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read, or -1 on error (including
- %G_IO_ERROR_WOULD_BLOCK).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least @count bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to read</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="can_poll"
- c:identifier="g_pollable_input_stream_can_poll"
- version="2.28">
- <doc xml:space="preserve">Checks if @stream is actually pollable. Some classes may implement
- #GPollableInputStream but have only certain instances of that class
- be pollable. If this method returns %FALSE, then the behavior of
- other #GPollableInputStream methods is undefined.
- For any given stream, the value returned by this method is constant;
- a stream cannot switch from pollable to non-pollable or vice versa.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is pollable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="create_source"
- c:identifier="g_pollable_input_stream_create_source"
- version="2.28">
- <doc xml:space="preserve">Creates a #GSource that triggers when @stream can be read, or
- @cancellable is triggered or an error occurs. The callback on the
- source is of the #GPollableSourceFunc type.
- As with g_pollable_input_stream_is_readable(), it is possible that
- the stream may not actually be readable even after the source
- triggers, so you should use g_pollable_input_stream_read_nonblocking()
- rather than g_input_stream_read() from the callback.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_readable"
- c:identifier="g_pollable_input_stream_is_readable"
- version="2.28">
- <doc xml:space="preserve">Checks if @stream can be read.
- Note that some stream types may not be able to implement this 100%
- reliably, and it is possible that a call to g_input_stream_read()
- after this returns %TRUE would still block. To guarantee
- non-blocking behavior, you should always use
- g_pollable_input_stream_read_nonblocking(), which will return a
- %G_IO_ERROR_WOULD_BLOCK error rather than blocking.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is readable, %FALSE if not. If an error
- has occurred on @stream, this will result in
- g_pollable_input_stream_is_readable() returning %TRUE, and the
- next attempt to read will return the error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="read_nonblocking"
- c:identifier="g_pollable_input_stream_read_nonblocking"
- throws="1">
- <doc xml:space="preserve">Attempts to read up to @count bytes from @stream into @buffer, as
- with g_input_stream_read(). If @stream is not currently readable,
- this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
- use g_pollable_input_stream_create_source() to create a #GSource
- that will be triggered when @stream is readable.
- Note that since this method never blocks, you cannot actually
- use @cancellable to cancel it. However, it will return an error
- if @cancellable has already been cancelled when you call, which
- may happen if you call this method after a source triggers due
- to having been cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read, or -1 on error (including
- %G_IO_ERROR_WOULD_BLOCK).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least @count bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to read</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="PollableInputStreamInterface"
- c:type="GPollableInputStreamInterface"
- glib:is-gtype-struct-for="PollableInputStream"
- version="2.28">
- <doc xml:space="preserve">The interface for pollable input streams.
- The default implementation of @can_poll always returns %TRUE.
- The default implementation of @read_nonblocking calls
- g_pollable_input_stream_is_readable(), and then calls
- g_input_stream_read() if it returns %TRUE. This means you only need
- to override it if it is possible that your @is_readable
- implementation may return %TRUE when the stream is not actually
- readable.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="can_poll">
- <callback name="can_poll">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is pollable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_readable">
- <callback name="is_readable">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is readable, %FALSE if not. If an error
- has occurred on @stream, this will result in
- g_pollable_input_stream_is_readable() returning %TRUE, and the
- next attempt to read will return the error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_source">
- <callback name="create_source">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream.</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_nonblocking">
- <callback name="read_nonblocking" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read, or -1 on error (including
- %G_IO_ERROR_WOULD_BLOCK).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableInputStream</doc>
- <type name="PollableInputStream" c:type="GPollableInputStream*"/>
- </parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least @count bytes long).</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to read</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="PollableOutputStream"
- c:symbol-prefix="pollable_output_stream"
- c:type="GPollableOutputStream"
- version="2.28"
- glib:type-name="GPollableOutputStream"
- glib:get-type="g_pollable_output_stream_get_type"
- glib:type-struct="PollableOutputStreamInterface">
- <doc xml:space="preserve">#GPollableOutputStream is implemented by #GOutputStreams that
- can be polled for readiness to write. This can be used when
- interfacing with a non-GIO API that expects
- UNIX-file-descriptor-style asynchronous I/O rather than GIO-style.</doc>
- <prerequisite name="OutputStream"/>
- <virtual-method name="can_poll" invoker="can_poll" version="2.28">
- <doc xml:space="preserve">Checks if @stream is actually pollable. Some classes may implement
- #GPollableOutputStream but have only certain instances of that
- class be pollable. If this method returns %FALSE, then the behavior
- of other #GPollableOutputStream methods is undefined.
- For any given stream, the value returned by this method is constant;
- a stream cannot switch from pollable to non-pollable or vice versa.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is pollable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="create_source"
- invoker="create_source"
- version="2.28">
- <doc xml:space="preserve">Creates a #GSource that triggers when @stream can be written, or
- @cancellable is triggered or an error occurs. The callback on the
- source is of the #GPollableSourceFunc type.
- As with g_pollable_output_stream_is_writable(), it is possible that
- the stream may not actually be writable even after the source
- triggers, so you should use g_pollable_output_stream_write_nonblocking()
- rather than g_output_stream_write() from the callback.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_writable" invoker="is_writable" version="2.28">
- <doc xml:space="preserve">Checks if @stream can be written.
- Note that some stream types may not be able to implement this 100%
- reliably, and it is possible that a call to g_output_stream_write()
- after this returns %TRUE would still block. To guarantee
- non-blocking behavior, you should always use
- g_pollable_output_stream_write_nonblocking(), which will return a
- %G_IO_ERROR_WOULD_BLOCK error rather than blocking.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is writable, %FALSE if not. If an error
- has occurred on @stream, this will result in
- g_pollable_output_stream_is_writable() returning %TRUE, and the
- next attempt to write will return the error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="write_nonblocking"
- invoker="write_nonblocking"
- throws="1">
- <doc xml:space="preserve">Attempts to write up to @count bytes from @buffer to @stream, as
- with g_output_stream_write(). If @stream is not currently writable,
- this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
- use g_pollable_output_stream_create_source() to create a #GSource
- that will be triggered when @stream is writable.
- Note that since this method never blocks, you cannot actually
- use @cancellable to cancel it. However, it will return an error
- if @cancellable has already been cancelled when you call, which
- may happen if you call this method after a source triggers due
- to having been cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes written, or -1 on error (including
- %G_IO_ERROR_WOULD_BLOCK).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to write
- data from</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="can_poll"
- c:identifier="g_pollable_output_stream_can_poll"
- version="2.28">
- <doc xml:space="preserve">Checks if @stream is actually pollable. Some classes may implement
- #GPollableOutputStream but have only certain instances of that
- class be pollable. If this method returns %FALSE, then the behavior
- of other #GPollableOutputStream methods is undefined.
- For any given stream, the value returned by this method is constant;
- a stream cannot switch from pollable to non-pollable or vice versa.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is pollable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="create_source"
- c:identifier="g_pollable_output_stream_create_source"
- version="2.28">
- <doc xml:space="preserve">Creates a #GSource that triggers when @stream can be written, or
- @cancellable is triggered or an error occurs. The callback on the
- source is of the #GPollableSourceFunc type.
- As with g_pollable_output_stream_is_writable(), it is possible that
- the stream may not actually be writable even after the source
- triggers, so you should use g_pollable_output_stream_write_nonblocking()
- rather than g_output_stream_write() from the callback.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_writable"
- c:identifier="g_pollable_output_stream_is_writable"
- version="2.28">
- <doc xml:space="preserve">Checks if @stream can be written.
- Note that some stream types may not be able to implement this 100%
- reliably, and it is possible that a call to g_output_stream_write()
- after this returns %TRUE would still block. To guarantee
- non-blocking behavior, you should always use
- g_pollable_output_stream_write_nonblocking(), which will return a
- %G_IO_ERROR_WOULD_BLOCK error rather than blocking.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is writable, %FALSE if not. If an error
- has occurred on @stream, this will result in
- g_pollable_output_stream_is_writable() returning %TRUE, and the
- next attempt to write will return the error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="write_nonblocking"
- c:identifier="g_pollable_output_stream_write_nonblocking"
- throws="1">
- <doc xml:space="preserve">Attempts to write up to @count bytes from @buffer to @stream, as
- with g_output_stream_write(). If @stream is not currently writable,
- this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
- use g_pollable_output_stream_create_source() to create a #GSource
- that will be triggered when @stream is writable.
- Note that since this method never blocks, you cannot actually
- use @cancellable to cancel it. However, it will return an error
- if @cancellable has already been cancelled when you call, which
- may happen if you call this method after a source triggers due
- to having been cancelled.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes written, or -1 on error (including
- %G_IO_ERROR_WOULD_BLOCK).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream</doc>
- <type name="PollableOutputStream" c:type="GPollableOutputStream*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to write
- data from</doc>
- <array length="1" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="PollableOutputStreamInterface"
- c:type="GPollableOutputStreamInterface"
- glib:is-gtype-struct-for="PollableOutputStream"
- version="2.28">
- <doc xml:space="preserve">The interface for pollable output streams.
- The default implementation of @can_poll always returns %TRUE.
- The default implementation of @write_nonblocking calls
- g_pollable_output_stream_is_writable(), and then calls
- g_output_stream_write() if it returns %TRUE. This means you only
- need to override it if it is possible that your @is_writable
- implementation may return %TRUE when the stream is not actually
- writable.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="can_poll">
- <callback name="can_poll">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is pollable, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream"
- c:type="GPollableOutputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_writable">
- <callback name="is_writable">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @stream is writable, %FALSE if not. If an error
- has occurred on @stream, this will result in
- g_pollable_output_stream_is_writable() returning %TRUE, and the
- next attempt to write will return the error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream"
- c:type="GPollableOutputStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_source">
- <callback name="create_source">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSource</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream.</doc>
- <type name="PollableOutputStream"
- c:type="GPollableOutputStream*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="write_nonblocking">
- <callback name="write_nonblocking" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes written, or -1 on error (including
- %G_IO_ERROR_WOULD_BLOCK).</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GPollableOutputStream</doc>
- <type name="PollableOutputStream"
- c:type="GPollableOutputStream*"/>
- </parameter>
- <parameter name="buffer"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a buffer to write
- data from</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <callback name="PollableSourceFunc"
- c:type="GPollableSourceFunc"
- version="2.28">
- <doc xml:space="preserve">This is the function type of the callback used for the #GSource
- returned by g_pollable_input_stream_create_source() and
- g_pollable_output_stream_create_source().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">it should return %FALSE if the source should be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pollable_stream" transfer-ownership="none">
- <doc xml:space="preserve">the #GPollableInputStream or #GPollableOutputStream</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="1">
- <doc xml:space="preserve">data passed in by the user.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="PropertyAction"
- c:symbol-prefix="property_action"
- c:type="GPropertyAction"
- version="2.38"
- parent="GObject.Object"
- glib:type-name="GPropertyAction"
- glib:get-type="g_property_action_get_type">
- <doc xml:space="preserve">A #GPropertyAction is a way to get a #GAction with a state value
- reflecting and controlling the value of a #GObject property.
- The state of the action will correspond to the value of the property.
- Changing it will change the property (assuming the requested value
- matches the requirements as specified in the #GParamSpec).
- Only the most common types are presently supported. Booleans are
- mapped to booleans, strings to strings, signed/unsigned integers to
- int32/uint32 and floats and doubles to doubles.
- If the property is an enum then the state will be string-typed and
- conversion will automatically be performed between the enum value and
- "nick" string as per the #GEnumValue table.
- Flags types are not currently supported.
- Properties of object types, boxed types and pointer types are not
- supported and probably never will be.
- Properties of #GVariant types are not currently supported.
- If the property is boolean-valued then the action will have a NULL
- parameter type, and activating the action (with no parameter) will
- toggle the value of the property.
- In all other cases, the parameter type will correspond to the type of
- the property.
- The general idea here is to reduce the number of locations where a
- particular piece of state is kept (and therefore has to be synchronised
- between). #GPropertyAction does not have a separate state that is kept
- in sync with the property value -- its state is the property value.
- For example, it might be useful to create a #GAction corresponding to
- the "visible-child-name" property of a #GtkStack so that the current
- page can be switched from a menu. The active radio indication in the
- menu is then directly determined from the active page of the
- #GtkStack.
- An anti-example would be binding the "active-id" property on a
- #GtkComboBox. This is because the state of the combobox itself is
- probably uninteresting and is actually being used to control
- something else.
- Another anti-example would be to bind to the "visible-child-name"
- property of a #GtkStack if this value is actually stored in
- #GSettings. In that case, the real source of the value is
- #GSettings. If you want a #GAction to control a setting stored in
- #GSettings, see g_settings_create_action() instead, and possibly
- combine its use with g_settings_bind().</doc>
- <implements name="Action"/>
- <constructor name="new"
- c:identifier="g_property_action_new"
- version="2.38">
- <doc xml:space="preserve">Creates a #GAction corresponding to the value of property
- @property_name on @object.
- The property must be existent and readable and writable (and not
- construct-only).
- This function takes a reference on @object and doesn't release it
- until the action is destroyed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GPropertyAction</doc>
- <type name="PropertyAction" c:type="GPropertyAction*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to create</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object that has the property
- to wrap</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the property</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <property name="enabled" version="2.38" transfer-ownership="none">
- <doc xml:space="preserve">If @action is currently enabled.
- If the action is disabled then calls to g_action_activate() and
- g_action_change_state() have no effect.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="invert-boolean"
- version="2.46"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">If %TRUE, the state of the action will be the negation of the
- property value, provided the property is boolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="name"
- version="2.38"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The name of the action. This is mostly meaningful for identifying
- the action once it has been added to a #GActionMap.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="object"
- version="2.38"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The object to wrap a property on.
- The object must be a non-%NULL #GObject with properties.</doc>
- <type name="GObject.Object"/>
- </property>
- <property name="parameter-type" version="2.38" transfer-ownership="none">
- <doc xml:space="preserve">The type of the parameter that must be given when activating the
- action.</doc>
- <type name="GLib.VariantType"/>
- </property>
- <property name="property-name"
- version="2.38"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The name of the property to wrap on the object.
- The property must exist on the passed-in object and it must be
- readable and writable (and not construct-only).</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="state" version="2.38" transfer-ownership="none">
- <doc xml:space="preserve">The state of the action, or %NULL if the action is stateless.</doc>
- <type name="GLib.Variant"/>
- </property>
- <property name="state-type" version="2.38" transfer-ownership="none">
- <doc xml:space="preserve">The #GVariantType of the state that the action has, or %NULL if the
- action is stateless.</doc>
- <type name="GLib.VariantType"/>
- </property>
- </class>
- <interface name="Proxy"
- c:symbol-prefix="proxy"
- c:type="GProxy"
- version="2.26"
- glib:type-name="GProxy"
- glib:get-type="g_proxy_get_type"
- glib:type-struct="ProxyInterface">
- <doc xml:space="preserve">A #GProxy handles connecting to a remote host via a given type of
- proxy server. It is implemented by the 'gio-proxy' extension point.
- The extensions are named after their proxy protocol name. As an
- example, a SOCKS5 proxy implementation can be retrieved with the
- name 'socks5' using the function
- g_io_extension_point_get_extension_by_name().</doc>
- <function name="get_default_for_protocol"
- c:identifier="g_proxy_get_default_for_protocol"
- version="2.26">
- <doc xml:space="preserve">Lookup "gio-proxy" extension point for a proxy implementation that supports
- specified protocol.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">return a #GProxy or NULL if protocol
- is not supported.</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">the proxy protocol name (e.g. http, socks, etc)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="connect"
- invoker="connect"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Given @connection to communicate with a proxy (eg, a
- #GSocketConnection that is connected to the proxy server), this
- does the necessary handshake to connect to @proxy_address, and if
- required, wraps the #GIOStream to handle proxy payload.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOStream that will replace @connection. This might
- be the same as @connection, in which case a reference
- will be added.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="proxy_address" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="connect_async"
- invoker="connect_async"
- version="2.26">
- <doc xml:space="preserve">Asynchronous version of g_proxy_connect().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="proxy_address" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">callback data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="connect_finish"
- invoker="connect_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">See g_proxy_connect().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOStream.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="supports_hostname"
- invoker="supports_hostname"
- version="2.26">
- <doc xml:space="preserve">Some proxy protocols expect to be passed a hostname, which they
- will resolve to an IP address themselves. Others, like SOCKS4, do
- not allow this. This function will return %FALSE if @proxy is
- implementing such a protocol. When %FALSE is returned, the caller
- should resolve the destination hostname first, and then pass a
- #GProxyAddress containing the stringified IP address to
- g_proxy_connect() or g_proxy_connect_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if hostname resolution is supported.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="connect"
- c:identifier="g_proxy_connect"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Given @connection to communicate with a proxy (eg, a
- #GSocketConnection that is connected to the proxy server), this
- does the necessary handshake to connect to @proxy_address, and if
- required, wraps the #GIOStream to handle proxy payload.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOStream that will replace @connection. This might
- be the same as @connection, in which case a reference
- will be added.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="proxy_address" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_async"
- c:identifier="g_proxy_connect_async"
- version="2.26">
- <doc xml:space="preserve">Asynchronous version of g_proxy_connect().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="proxy_address" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">callback data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_finish"
- c:identifier="g_proxy_connect_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">See g_proxy_connect().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOStream.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="supports_hostname"
- c:identifier="g_proxy_supports_hostname"
- version="2.26">
- <doc xml:space="preserve">Some proxy protocols expect to be passed a hostname, which they
- will resolve to an IP address themselves. Others, like SOCKS4, do
- not allow this. This function will return %FALSE if @proxy is
- implementing such a protocol. When %FALSE is returned, the caller
- should resolve the destination hostname first, and then pass a
- #GProxyAddress containing the stringified IP address to
- g_proxy_connect() or g_proxy_connect_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if hostname resolution is supported.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <class name="ProxyAddress"
- c:symbol-prefix="proxy_address"
- c:type="GProxyAddress"
- version="2.26"
- parent="InetSocketAddress"
- glib:type-name="GProxyAddress"
- glib:get-type="g_proxy_address_get_type"
- glib:type-struct="ProxyAddressClass">
- <doc xml:space="preserve">Support for proxied #GInetSocketAddress.</doc>
- <implements name="SocketConnectable"/>
- <constructor name="new"
- c:identifier="g_proxy_address_new"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GProxyAddress for @inetaddr with @protocol that should
- tunnel through @dest_hostname and @dest_port.
- (Note that this method doesn't set the #GProxyAddress:uri or
- #GProxyAddress:destination-protocol fields; use g_object_new()
- directly if you want to set those.)</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GProxyAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="inetaddr" transfer-ownership="none">
- <doc xml:space="preserve">The proxy server #GInetAddress.</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">The proxy server port.</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">The proxy protocol to support, in lower case (e.g. socks, http).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dest_hostname" transfer-ownership="none">
- <doc xml:space="preserve">The destination hostname the proxy should tunnel to.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dest_port" transfer-ownership="none">
- <doc xml:space="preserve">The destination port to tunnel to.</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="username"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The username to authenticate to the proxy server
- (or %NULL).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="password"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The password to authenticate to the proxy server
- (or %NULL).</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_destination_hostname"
- c:identifier="g_proxy_address_get_destination_hostname"
- version="2.26">
- <doc xml:space="preserve">Gets @proxy's destination hostname; that is, the name of the host
- that will be connected to via the proxy, not the name of the proxy
- itself.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's destination hostname</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_destination_port"
- c:identifier="g_proxy_address_get_destination_port"
- version="2.26">
- <doc xml:space="preserve">Gets @proxy's destination port; that is, the port on the
- destination host that will be connected to via the proxy, not the
- port number of the proxy itself.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's destination port</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_destination_protocol"
- c:identifier="g_proxy_address_get_destination_protocol"
- version="2.34">
- <doc xml:space="preserve">Gets the protocol that is being spoken to the destination
- server; eg, "http" or "ftp".</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's destination protocol</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_password"
- c:identifier="g_proxy_address_get_password"
- version="2.26">
- <doc xml:space="preserve">Gets @proxy's password.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's password</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_protocol"
- c:identifier="g_proxy_address_get_protocol"
- version="2.26">
- <doc xml:space="preserve">Gets @proxy's protocol. eg, "socks" or "http"</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's protocol</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uri"
- c:identifier="g_proxy_address_get_uri"
- version="2.34">
- <doc xml:space="preserve">Gets the proxy URI that @proxy was constructed from.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's URI, or %NULL if unknown</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_username"
- c:identifier="g_proxy_address_get_username"
- version="2.26">
- <doc xml:space="preserve">Gets @proxy's username.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @proxy's username</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="destination-hostname"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="destination-port"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <property name="destination-protocol"
- version="2.34"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The protocol being spoke to the destination host, or %NULL if
- the #GProxyAddress doesn't know.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="password"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="protocol"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="uri"
- version="2.34"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The URI string that the proxy was constructed from (or %NULL
- if the creator didn't specify this).</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="username"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="InetSocketAddress" c:type="GInetSocketAddress"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="ProxyAddressPrivate" c:type="GProxyAddressPrivate*"/>
- </field>
- </class>
- <record name="ProxyAddressClass"
- c:type="GProxyAddressClass"
- glib:is-gtype-struct-for="ProxyAddress"
- version="2.26">
- <doc xml:space="preserve">Class structure for #GProxyAddress.</doc>
- <field name="parent_class">
- <type name="InetSocketAddressClass" c:type="GInetSocketAddressClass"/>
- </field>
- </record>
- <class name="ProxyAddressEnumerator"
- c:symbol-prefix="proxy_address_enumerator"
- c:type="GProxyAddressEnumerator"
- parent="SocketAddressEnumerator"
- glib:type-name="GProxyAddressEnumerator"
- glib:get-type="g_proxy_address_enumerator_get_type"
- glib:type-struct="ProxyAddressEnumeratorClass">
- <doc xml:space="preserve">A subclass of #GSocketAddressEnumerator that takes another address
- enumerator and wraps its results in #GProxyAddress<!-- -->es as
- directed by the default #GProxyResolver.</doc>
- <property name="connectable"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SocketConnectable"/>
- </property>
- <property name="default-port"
- version="2.38"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The default port to use if #GProxyAddressEnumerator:uri does not
- specify one.</doc>
- <type name="guint" c:type="guint"/>
- </property>
- <property name="proxy-resolver"
- version="2.36"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The proxy resolver to use.</doc>
- <type name="ProxyResolver"/>
- </property>
- <property name="uri"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator"/>
- </field>
- <field name="priv">
- <type name="ProxyAddressEnumeratorPrivate"
- c:type="GProxyAddressEnumeratorPrivate*"/>
- </field>
- </class>
- <record name="ProxyAddressEnumeratorClass"
- c:type="GProxyAddressEnumeratorClass"
- glib:is-gtype-struct-for="ProxyAddressEnumerator">
- <field name="parent_class">
- <type name="SocketAddressEnumeratorClass"
- c:type="GSocketAddressEnumeratorClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved7" introspectable="0">
- <callback name="_g_reserved7">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="ProxyAddressEnumeratorPrivate"
- c:type="GProxyAddressEnumeratorPrivate"
- disguised="1">
- </record>
- <record name="ProxyAddressPrivate"
- c:type="GProxyAddressPrivate"
- disguised="1">
- </record>
- <record name="ProxyInterface"
- c:type="GProxyInterface"
- glib:is-gtype-struct-for="Proxy"
- version="2.26">
- <doc xml:space="preserve">Provides an interface for handling proxy connection and payload.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="connect">
- <callback name="connect" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOStream that will replace @connection. This might
- be the same as @connection, in which case a reference
- will be added.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="proxy_address" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="connect_async">
- <callback name="connect_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="proxy_address" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyAddress</doc>
- <type name="ProxyAddress" c:type="GProxyAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">callback data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="connect_finish">
- <callback name="connect_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIOStream.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="supports_hostname">
- <callback name="supports_hostname">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if hostname resolution is supported.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxy</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="ProxyResolver"
- c:symbol-prefix="proxy_resolver"
- c:type="GProxyResolver"
- version="2.26"
- glib:type-name="GProxyResolver"
- glib:get-type="g_proxy_resolver_get_type"
- glib:type-struct="ProxyResolverInterface">
- <doc xml:space="preserve">#GProxyResolver provides synchronous and asynchronous network proxy
- resolution. #GProxyResolver is used within #GSocketClient through
- the method g_socket_connectable_proxy_enumerate().</doc>
- <function name="get_default"
- c:identifier="g_proxy_resolver_get_default"
- version="2.26">
- <doc xml:space="preserve">Gets the default #GProxyResolver for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default #GProxyResolver.</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </return-value>
- </function>
- <virtual-method name="is_supported"
- invoker="is_supported"
- version="2.26">
- <doc xml:space="preserve">Checks if @resolver can be used on this system. (This is used
- internally; g_proxy_resolver_get_default() will only return a proxy
- resolver that returns %TRUE for this method.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @resolver is supported.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup" invoker="lookup" version="2.26" throws="1">
- <doc xml:space="preserve">Looks into the system proxy configuration to determine what proxy,
- if any, to use to connect to @uri. The returned proxy URIs are of
- the form `<protocol>://[user[:password]@]host:port` or
- `direct://`, where <protocol> could be http, rtsp, socks
- or other proxying protocol.
- If you don't know what network protocol is being used on the
- socket, you should use `none` as the URI protocol.
- In this case, the resolver might still return a generic proxy type
- (such as SOCKS), but would not return protocol-specific proxy types
- (such as http).
- `direct://` is used when no proxy is needed.
- Direct connection should not be attempted unless it is part of the
- returned array of proxies.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- NULL-terminated array of proxy URIs. Must be freed
- with g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI representing the destination to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_async"
- invoker="lookup_async"
- version="2.26">
- <doc xml:space="preserve">Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more
- details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI representing the destination to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_finish"
- invoker="lookup_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Call this function to obtain the array of proxy URIs when
- g_proxy_resolver_lookup_async() is complete. See
- g_proxy_resolver_lookup() for more details.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- NULL-terminated array of proxy URIs. Must be freed
- with g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="is_supported"
- c:identifier="g_proxy_resolver_is_supported"
- version="2.26">
- <doc xml:space="preserve">Checks if @resolver can be used on this system. (This is used
- internally; g_proxy_resolver_get_default() will only return a proxy
- resolver that returns %TRUE for this method.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @resolver is supported.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="lookup"
- c:identifier="g_proxy_resolver_lookup"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Looks into the system proxy configuration to determine what proxy,
- if any, to use to connect to @uri. The returned proxy URIs are of
- the form `<protocol>://[user[:password]@]host:port` or
- `direct://`, where <protocol> could be http, rtsp, socks
- or other proxying protocol.
- If you don't know what network protocol is being used on the
- socket, you should use `none` as the URI protocol.
- In this case, the resolver might still return a generic proxy type
- (such as SOCKS), but would not return protocol-specific proxy types
- (such as http).
- `direct://` is used when no proxy is needed.
- Direct connection should not be attempted unless it is part of the
- returned array of proxies.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- NULL-terminated array of proxy URIs. Must be freed
- with g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI representing the destination to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_async"
- c:identifier="g_proxy_resolver_lookup_async"
- version="2.26">
- <doc xml:space="preserve">Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more
- details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI representing the destination to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_finish"
- c:identifier="g_proxy_resolver_lookup_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Call this function to obtain the array of proxy URIs when
- g_proxy_resolver_lookup_async() is complete. See
- g_proxy_resolver_lookup() for more details.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- NULL-terminated array of proxy URIs. Must be freed
- with g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="ProxyResolverInterface"
- c:type="GProxyResolverInterface"
- glib:is-gtype-struct-for="ProxyResolver">
- <doc xml:space="preserve">The virtual function table for #GProxyResolver.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="is_supported">
- <callback name="is_supported">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @resolver is supported.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup">
- <callback name="lookup" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- NULL-terminated array of proxy URIs. Must be freed
- with g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI representing the destination to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_async">
- <callback name="lookup_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a URI representing the destination to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_finish">
- <callback name="lookup_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A
- NULL-terminated array of proxy URIs. Must be freed
- with g_strfreev().</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <callback name="ReallocFunc" c:type="GReallocFunc">
- <doc xml:space="preserve">Changes the size of the memory block pointed to by @data to
- @size bytes.
- The function should have the same semantics as realloc().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer to the reallocated memory</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">memory block to reallocate</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size to reallocate @data to</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </callback>
- <interface name="RemoteActionGroup"
- c:symbol-prefix="remote_action_group"
- c:type="GRemoteActionGroup"
- glib:type-name="GRemoteActionGroup"
- glib:get-type="g_remote_action_group_get_type"
- glib:type-struct="RemoteActionGroupInterface">
- <doc xml:space="preserve">The GRemoteActionGroup interface is implemented by #GActionGroup
- instances that either transmit action invocations to other processes
- or receive action invocations in the local process from other
- processes.
- The interface has `_full` variants of the two
- methods on #GActionGroup used to activate actions:
- g_action_group_activate_action() and
- g_action_group_change_action_state(). These variants allow a
- "platform data" #GVariant to be specified: a dictionary providing
- context for the action invocation (for example: timestamps, startup
- notification IDs, etc).
- #GDBusActionGroup implements #GRemoteActionGroup. This provides a
- mechanism to send platform data for action invocations over D-Bus.
- Additionally, g_dbus_connection_export_action_group() will check if
- the exported #GActionGroup implements #GRemoteActionGroup and use the
- `_full` variants of the calls if available. This
- provides a mechanism by which to receive platform data for action
- invocations that arrive by way of D-Bus.</doc>
- <prerequisite name="ActionGroup"/>
- <virtual-method name="activate_action_full"
- invoker="activate_action_full"
- version="2.32">
- <doc xml:space="preserve">Activates the remote action.
- This is the same as g_action_group_activate_action() except that it
- allows for provision of "platform data" to be sent along with the
- activation request. This typically contains details such as the user
- interaction timestamp or startup notification information.
- @platform_data must be non-%NULL and must have the type
- %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="remote" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusActionGroup</doc>
- <type name="RemoteActionGroup" c:type="GRemoteActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to activate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the optional parameter to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">the platform data to send</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="change_action_state_full"
- invoker="change_action_state_full"
- version="2.32">
- <doc xml:space="preserve">Changes the state of a remote action.
- This is the same as g_action_group_change_action_state() except that
- it allows for provision of "platform data" to be sent along with the
- state change request. This typically contains details such as the
- user interaction timestamp or startup notification information.
- @platform_data must be non-%NULL and must have the type
- %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="remote" transfer-ownership="none">
- <doc xml:space="preserve">a #GRemoteActionGroup</doc>
- <type name="RemoteActionGroup" c:type="GRemoteActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to change the state of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new requested value for the state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">the platform data to send</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="activate_action_full"
- c:identifier="g_remote_action_group_activate_action_full"
- version="2.32">
- <doc xml:space="preserve">Activates the remote action.
- This is the same as g_action_group_activate_action() except that it
- allows for provision of "platform data" to be sent along with the
- activation request. This typically contains details such as the user
- interaction timestamp or startup notification information.
- @platform_data must be non-%NULL and must have the type
- %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="remote" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusActionGroup</doc>
- <type name="RemoteActionGroup" c:type="GRemoteActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to activate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the optional parameter to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">the platform data to send</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="change_action_state_full"
- c:identifier="g_remote_action_group_change_action_state_full"
- version="2.32">
- <doc xml:space="preserve">Changes the state of a remote action.
- This is the same as g_action_group_change_action_state() except that
- it allows for provision of "platform data" to be sent along with the
- state change request. This typically contains details such as the
- user interaction timestamp or startup notification information.
- @platform_data must be non-%NULL and must have the type
- %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="remote" transfer-ownership="none">
- <doc xml:space="preserve">a #GRemoteActionGroup</doc>
- <type name="RemoteActionGroup" c:type="GRemoteActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to change the state of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new requested value for the state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">the platform data to send</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="RemoteActionGroupInterface"
- c:type="GRemoteActionGroupInterface"
- glib:is-gtype-struct-for="RemoteActionGroup"
- version="2.32">
- <doc xml:space="preserve">The virtual function table for #GRemoteActionGroup.</doc>
- <field name="g_iface">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="activate_action_full">
- <callback name="activate_action_full">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="remote" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusActionGroup</doc>
- <type name="RemoteActionGroup" c:type="GRemoteActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to activate</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the optional parameter to the activation</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">the platform data to send</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="change_action_state_full">
- <callback name="change_action_state_full">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="remote" transfer-ownership="none">
- <doc xml:space="preserve">a #GRemoteActionGroup</doc>
- <type name="RemoteActionGroup" c:type="GRemoteActionGroup*"/>
- </parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action to change the state of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new requested value for the state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="platform_data" transfer-ownership="none">
- <doc xml:space="preserve">the platform data to send</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="Resolver"
- c:symbol-prefix="resolver"
- c:type="GResolver"
- parent="GObject.Object"
- glib:type-name="GResolver"
- glib:get-type="g_resolver_get_type"
- glib:type-struct="ResolverClass">
- <doc xml:space="preserve">#GResolver provides cancellable synchronous and asynchronous DNS
- resolution, for hostnames (g_resolver_lookup_by_address(),
- g_resolver_lookup_by_name() and their async variants) and SRV
- (service) records (g_resolver_lookup_service()).
- #GNetworkAddress and #GNetworkService provide wrappers around
- #GResolver functionality that also implement #GSocketConnectable,
- making it easy to connect to a remote host/service.</doc>
- <function name="free_addresses"
- c:identifier="g_resolver_free_addresses"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Frees @addresses (which should be the return value from
- g_resolver_lookup_by_name() or g_resolver_lookup_by_name_finish()).
- (This is a convenience method; you can also simply free the results
- by hand.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="addresses" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GInetAddress</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="free_targets"
- c:identifier="g_resolver_free_targets"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Frees @targets (which should be the return value from
- g_resolver_lookup_service() or g_resolver_lookup_service_finish()).
- (This is a convenience method; you can also simply free the
- results by hand.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="targets" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GSrvTarget</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="get_default"
- c:identifier="g_resolver_get_default"
- version="2.22">
- <doc xml:space="preserve">Gets the default #GResolver. You should unref it when you are done
- with it. #GResolver may use its reference count as a hint about how
- many threads it should allocate for concurrent DNS resolutions.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the default #GResolver.</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </return-value>
- </function>
- <virtual-method name="lookup_by_address"
- invoker="lookup_by_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Synchronously reverse-resolves @address to determine its
- associated hostname.
- If the DNS resolution fails, @error (if non-%NULL) will be set to
- a value from #GResolverError.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a hostname (either ASCII-only, or in ASCII-encoded
- form), or %NULL on error.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the address to reverse-resolve</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_by_address_async"
- invoker="lookup_by_address_async"
- version="2.22">
- <doc xml:space="preserve">Begins asynchronously reverse-resolving @address to determine its
- associated hostname, and eventually calls @callback, which must
- call g_resolver_lookup_by_address_finish() to get the final result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the address to reverse-resolve</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_by_address_finish"
- invoker="lookup_by_address_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a previous call to
- g_resolver_lookup_by_address_async().
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a hostname (either ASCII-only, or in ASCII-encoded
- form), or %NULL on error.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_by_name"
- invoker="lookup_by_name"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Synchronously resolves @hostname to determine its associated IP
- address(es). @hostname may be an ASCII-only or UTF-8 hostname, or
- the textual form of an IP address (in which case this just becomes
- a wrapper around g_inet_address_new_from_string()).
- On success, g_resolver_lookup_by_name() will return a non-empty #GList of
- #GInetAddress, sorted in order of preference and guaranteed to not
- contain duplicates. That is, if using the result to connect to
- @hostname, you should attempt to connect to the first address
- first, then the second if the first fails, etc. If you are using
- the result to listen on a socket, it is appropriate to add each
- result using e.g. g_socket_listener_add_address().
- If the DNS resolution fails, @error (if non-%NULL) will be set to a
- value from #GResolverError and %NULL will be returned.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.
- If you are planning to connect to a socket on the resolved IP
- address, it may be easier to create a #GNetworkAddress and use its
- #GSocketConnectable interface.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList
- of #GInetAddress, or %NULL on error. You
- must unref each of the addresses and free the list when you are
- done with it. (You can use g_resolver_free_addresses() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="InetAddress"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname to look up</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_by_name_async"
- invoker="lookup_by_name_async"
- version="2.22">
- <doc xml:space="preserve">Begins asynchronously resolving @hostname to determine its
- associated IP address(es), and eventually calls @callback, which
- must call g_resolver_lookup_by_name_finish() to get the result.
- See g_resolver_lookup_by_name() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname to look up the address of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_by_name_finish"
- invoker="lookup_by_name_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a call to
- g_resolver_lookup_by_name_async().
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList
- of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
- for more details.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="InetAddress"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_records"
- invoker="lookup_records"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Synchronously performs a DNS record lookup for the given @rrname and returns
- a list of records as #GVariant tuples. See #GResolverRecordType for
- information on what the records contain for each @record_type.
- If the DNS resolution fails, @error (if non-%NULL) will be set to
- a value from #GResolverError and %NULL will be returned.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GVariant, or %NULL on error. You must free each of the records and the list
- when you are done with it. (You can use g_list_free_full() with
- g_variant_unref() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="GLib.Variant"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="rrname" transfer-ownership="none">
- <doc xml:space="preserve">the DNS name to lookup the record for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="record_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of DNS record to lookup</doc>
- <type name="ResolverRecordType" c:type="GResolverRecordType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_records_async"
- invoker="lookup_records_async"
- version="2.34">
- <doc xml:space="preserve">Begins asynchronously performing a DNS lookup for the given
- @rrname, and eventually calls @callback, which must call
- g_resolver_lookup_records_finish() to get the final result. See
- g_resolver_lookup_records() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="rrname" transfer-ownership="none">
- <doc xml:space="preserve">the DNS name to lookup the record for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="record_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of DNS record to lookup</doc>
- <type name="ResolverRecordType" c:type="GResolverRecordType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_records_finish"
- invoker="lookup_records_finish"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a previous call to
- g_resolver_lookup_records_async(). Returns a non-empty list of records as
- #GVariant tuples. See #GResolverRecordType for information on what the
- records contain.
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GVariant, or %NULL on error. You must free each of the records and the list
- when you are done with it. (You can use g_list_free_full() with
- g_variant_unref() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="GLib.Variant"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_service" introspectable="0" throws="1">
- <return-value>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="rrname" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_service_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="rrname" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_service_finish"
- invoker="lookup_service_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a previous call to
- g_resolver_lookup_service_async().
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
- details.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="SrvTarget"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reload">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="lookup_by_address"
- c:identifier="g_resolver_lookup_by_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Synchronously reverse-resolves @address to determine its
- associated hostname.
- If the DNS resolution fails, @error (if non-%NULL) will be set to
- a value from #GResolverError.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a hostname (either ASCII-only, or in ASCII-encoded
- form), or %NULL on error.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the address to reverse-resolve</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_by_address_async"
- c:identifier="g_resolver_lookup_by_address_async"
- version="2.22">
- <doc xml:space="preserve">Begins asynchronously reverse-resolving @address to determine its
- associated hostname, and eventually calls @callback, which must
- call g_resolver_lookup_by_address_finish() to get the final result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the address to reverse-resolve</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_by_address_finish"
- c:identifier="g_resolver_lookup_by_address_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a previous call to
- g_resolver_lookup_by_address_async().
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a hostname (either ASCII-only, or in ASCII-encoded
- form), or %NULL on error.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_by_name"
- c:identifier="g_resolver_lookup_by_name"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Synchronously resolves @hostname to determine its associated IP
- address(es). @hostname may be an ASCII-only or UTF-8 hostname, or
- the textual form of an IP address (in which case this just becomes
- a wrapper around g_inet_address_new_from_string()).
- On success, g_resolver_lookup_by_name() will return a non-empty #GList of
- #GInetAddress, sorted in order of preference and guaranteed to not
- contain duplicates. That is, if using the result to connect to
- @hostname, you should attempt to connect to the first address
- first, then the second if the first fails, etc. If you are using
- the result to listen on a socket, it is appropriate to add each
- result using e.g. g_socket_listener_add_address().
- If the DNS resolution fails, @error (if non-%NULL) will be set to a
- value from #GResolverError and %NULL will be returned.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.
- If you are planning to connect to a socket on the resolved IP
- address, it may be easier to create a #GNetworkAddress and use its
- #GSocketConnectable interface.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList
- of #GInetAddress, or %NULL on error. You
- must unref each of the addresses and free the list when you are
- done with it. (You can use g_resolver_free_addresses() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="InetAddress"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname to look up</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_by_name_async"
- c:identifier="g_resolver_lookup_by_name_async"
- version="2.22">
- <doc xml:space="preserve">Begins asynchronously resolving @hostname to determine its
- associated IP address(es), and eventually calls @callback, which
- must call g_resolver_lookup_by_name_finish() to get the result.
- See g_resolver_lookup_by_name() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname to look up the address of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_by_name_finish"
- c:identifier="g_resolver_lookup_by_name_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a call to
- g_resolver_lookup_by_name_async().
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList
- of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
- for more details.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="InetAddress"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_records"
- c:identifier="g_resolver_lookup_records"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Synchronously performs a DNS record lookup for the given @rrname and returns
- a list of records as #GVariant tuples. See #GResolverRecordType for
- information on what the records contain for each @record_type.
- If the DNS resolution fails, @error (if non-%NULL) will be set to
- a value from #GResolverError and %NULL will be returned.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GVariant, or %NULL on error. You must free each of the records and the list
- when you are done with it. (You can use g_list_free_full() with
- g_variant_unref() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="GLib.Variant"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="rrname" transfer-ownership="none">
- <doc xml:space="preserve">the DNS name to lookup the record for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="record_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of DNS record to lookup</doc>
- <type name="ResolverRecordType" c:type="GResolverRecordType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_records_async"
- c:identifier="g_resolver_lookup_records_async"
- version="2.34">
- <doc xml:space="preserve">Begins asynchronously performing a DNS lookup for the given
- @rrname, and eventually calls @callback, which must call
- g_resolver_lookup_records_finish() to get the final result. See
- g_resolver_lookup_records() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="rrname" transfer-ownership="none">
- <doc xml:space="preserve">the DNS name to lookup the record for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="record_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of DNS record to lookup</doc>
- <type name="ResolverRecordType" c:type="GResolverRecordType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_records_finish"
- c:identifier="g_resolver_lookup_records_finish"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a previous call to
- g_resolver_lookup_records_async(). Returns a non-empty list of records as
- #GVariant tuples. See #GResolverRecordType for information on what the
- records contain.
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GVariant, or %NULL on error. You must free each of the records and the list
- when you are done with it. (You can use g_list_free_full() with
- g_variant_unref() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="GLib.Variant"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_service"
- c:identifier="g_resolver_lookup_service"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Synchronously performs a DNS SRV lookup for the given @service and
- @protocol in the given @domain and returns an array of #GSrvTarget.
- @domain may be an ASCII-only or UTF-8 hostname. Note also that the
- @service and @protocol arguments do not include the leading underscore
- that appears in the actual DNS entry.
- On success, g_resolver_lookup_service() will return a non-empty #GList of
- #GSrvTarget, sorted in order of preference. (That is, you should
- attempt to connect to the first target first, then the second if
- the first fails, etc.)
- If the DNS resolution fails, @error (if non-%NULL) will be set to
- a value from #GResolverError and %NULL will be returned.
- If @cancellable is non-%NULL, it can be used to cancel the
- operation, in which case @error (if non-%NULL) will be set to
- %G_IO_ERROR_CANCELLED.
- If you are planning to connect to the service, it is usually easier
- to create a #GNetworkService and use its #GSocketConnectable
- interface.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GSrvTarget, or %NULL on error. You must free each of the targets and the
- list when you are done with it. (You can use g_resolver_free_targets() to do
- this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="SrvTarget"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">the service type to look up (eg, "ldap")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">the networking protocol to use for @service (eg, "tcp")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">the DNS domain to look up the service in</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_service_async"
- c:identifier="g_resolver_lookup_service_async"
- version="2.22">
- <doc xml:space="preserve">Begins asynchronously performing a DNS SRV lookup for the given
- @service and @protocol in the given @domain, and eventually calls
- @callback, which must call g_resolver_lookup_service_finish() to
- get the final result. See g_resolver_lookup_service() for more
- details.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">the service type to look up (eg, "ldap")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">the networking protocol to use for @service (eg, "tcp")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">the DNS domain to look up the service in</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_service_finish"
- c:identifier="g_resolver_lookup_service_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a previous call to
- g_resolver_lookup_service_async().
- If the DNS resolution failed, @error (if non-%NULL) will be set to
- a value from #GResolverError. If the operation was cancelled,
- @error will be set to %G_IO_ERROR_CANCELLED.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
- details.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="SrvTarget"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_default"
- c:identifier="g_resolver_set_default"
- version="2.22">
- <doc xml:space="preserve">Sets @resolver to be the application's default resolver (reffing
- @resolver, and unreffing the previous default resolver, if any).
- Future calls to g_resolver_get_default() will return this resolver.
- This can be used if an application wants to perform any sort of DNS
- caching or "pinning"; it can implement its own #GResolver that
- calls the original default resolver for DNS operations, and
- implements its own cache policies on top of that, and then set
- itself as the default resolver for all later code to use.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">the new default #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="ResolverPrivate" c:type="GResolverPrivate*"/>
- </field>
- <glib:signal name="reload" when="last">
- <doc xml:space="preserve">Emitted when the resolver notices that the system resolver
- configuration has changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <record name="ResolverClass"
- c:type="GResolverClass"
- glib:is-gtype-struct-for="Resolver">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="reload">
- <callback name="reload">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_by_name">
- <callback name="lookup_by_name" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList
- of #GInetAddress, or %NULL on error. You
- must unref each of the addresses and free the list when you are
- done with it. (You can use g_resolver_free_addresses() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="InetAddress"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname to look up</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_by_name_async">
- <callback name="lookup_by_name_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the hostname to look up the address of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_by_name_finish">
- <callback name="lookup_by_name_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList
- of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
- for more details.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="InetAddress"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_by_address">
- <callback name="lookup_by_address" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a hostname (either ASCII-only, or in ASCII-encoded
- form), or %NULL on error.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the address to reverse-resolve</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_by_address_async">
- <callback name="lookup_by_address_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">the address to reverse-resolve</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_by_address_finish">
- <callback name="lookup_by_address_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a hostname (either ASCII-only, or in ASCII-encoded
- form), or %NULL on error.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_service" introspectable="0">
- <callback name="lookup_service" introspectable="0" throws="1">
- <return-value>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="rrname" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_service_async">
- <callback name="lookup_service_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="rrname" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_service_finish">
- <callback name="lookup_service_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
- details.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="SrvTarget"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_records">
- <callback name="lookup_records" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GVariant, or %NULL on error. You must free each of the records and the list
- when you are done with it. (You can use g_list_free_full() with
- g_variant_unref() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="GLib.Variant"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="rrname" transfer-ownership="none">
- <doc xml:space="preserve">the DNS name to lookup the record for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="record_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of DNS record to lookup</doc>
- <type name="ResolverRecordType" c:type="GResolverRecordType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_records_async">
- <callback name="lookup_records_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="rrname" transfer-ownership="none">
- <doc xml:space="preserve">the DNS name to lookup the record for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="record_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of DNS record to lookup</doc>
- <type name="ResolverRecordType" c:type="GResolverRecordType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call after resolution completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_records_finish">
- <callback name="lookup_records_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a non-empty #GList of
- #GVariant, or %NULL on error. You must free each of the records and the list
- when you are done with it. (You can use g_list_free_full() with
- g_variant_unref() to do this.)</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="GLib.Variant"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GResolver</doc>
- <type name="Resolver" c:type="GResolver*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <enumeration name="ResolverError"
- version="2.22"
- glib:type-name="GResolverError"
- glib:get-type="g_resolver_error_get_type"
- c:type="GResolverError"
- glib:error-domain="g-resolver-error-quark">
- <doc xml:space="preserve">An error code used with %G_RESOLVER_ERROR in a #GError returned
- from a #GResolver routine.</doc>
- <member name="not_found"
- value="0"
- c:identifier="G_RESOLVER_ERROR_NOT_FOUND"
- glib:nick="not-found">
- <doc xml:space="preserve">the requested name/address/service was not
- found</doc>
- </member>
- <member name="temporary_failure"
- value="1"
- c:identifier="G_RESOLVER_ERROR_TEMPORARY_FAILURE"
- glib:nick="temporary-failure">
- <doc xml:space="preserve">the requested information could not
- be looked up due to a network error or similar problem</doc>
- </member>
- <member name="internal"
- value="2"
- c:identifier="G_RESOLVER_ERROR_INTERNAL"
- glib:nick="internal">
- <doc xml:space="preserve">unknown error</doc>
- </member>
- <function name="quark"
- c:identifier="g_resolver_error_quark"
- version="2.22">
- <doc xml:space="preserve">Gets the #GResolver Error Quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <record name="ResolverPrivate" c:type="GResolverPrivate" disguised="1">
- </record>
- <enumeration name="ResolverRecordType"
- version="2.34"
- glib:type-name="GResolverRecordType"
- glib:get-type="g_resolver_record_type_get_type"
- c:type="GResolverRecordType">
- <doc xml:space="preserve">The type of record that g_resolver_lookup_records() or
- g_resolver_lookup_records_async() should retrieve. The records are returned
- as lists of #GVariant tuples. Each record type has different values in
- the variant tuples returned.
- %G_RESOLVER_RECORD_SRV records are returned as variants with the signature
- '(qqqs)', containing a guint16 with the priority, a guint16 with the
- weight, a guint16 with the port, and a string of the hostname.
- %G_RESOLVER_RECORD_MX records are returned as variants with the signature
- '(qs)', representing a guint16 with the preference, and a string containing
- the mail exchanger hostname.
- %G_RESOLVER_RECORD_TXT records are returned as variants with the signature
- '(as)', representing an array of the strings in the text record.
- %G_RESOLVER_RECORD_SOA records are returned as variants with the signature
- '(ssuuuuu)', representing a string containing the primary name server, a
- string containing the administrator, the serial as a guint32, the refresh
- interval as guint32, the retry interval as a guint32, the expire timeout
- as a guint32, and the ttl as a guint32.
- %G_RESOLVER_RECORD_NS records are returned as variants with the signature
- '(s)', representing a string of the hostname of the name server.</doc>
- <member name="srv"
- value="1"
- c:identifier="G_RESOLVER_RECORD_SRV"
- glib:nick="srv">
- <doc xml:space="preserve">lookup DNS SRV records for a domain</doc>
- </member>
- <member name="mx"
- value="2"
- c:identifier="G_RESOLVER_RECORD_MX"
- glib:nick="mx">
- <doc xml:space="preserve">lookup DNS MX records for a domain</doc>
- </member>
- <member name="txt"
- value="3"
- c:identifier="G_RESOLVER_RECORD_TXT"
- glib:nick="txt">
- <doc xml:space="preserve">lookup DNS TXT records for a name</doc>
- </member>
- <member name="soa"
- value="4"
- c:identifier="G_RESOLVER_RECORD_SOA"
- glib:nick="soa">
- <doc xml:space="preserve">lookup DNS SOA records for a zone</doc>
- </member>
- <member name="ns"
- value="5"
- c:identifier="G_RESOLVER_RECORD_NS"
- glib:nick="ns">
- <doc xml:space="preserve">lookup DNS NS records for a domain</doc>
- </member>
- </enumeration>
- <record name="Resource"
- c:type="GResource"
- version="2.32"
- glib:type-name="GResource"
- glib:get-type="g_resource_get_type"
- c:symbol-prefix="resource">
- <doc xml:space="preserve">Applications and libraries often contain binary or textual data that is
- really part of the application, rather than user data. For instance
- #GtkBuilder .ui files, splashscreen images, GMenu markup XML, CSS files,
- icons, etc. These are often shipped as files in `$datadir/appname`, or
- manually included as literal strings in the code.
- The #GResource API and the [glib-compile-resources][glib-compile-resources] program
- provide a convenient and efficient alternative to this which has some nice properties. You
- maintain the files as normal files, so its easy to edit them, but during the build the files
- are combined into a binary bundle that is linked into the executable. This means that loading
- the resource files are efficient (as they are already in memory, shared with other instances) and
- simple (no need to check for things like I/O errors or locate the files in the filesystem). It
- also makes it easier to create relocatable applications.
- Resource files can also be marked as compressed. Such files will be included in the resource bundle
- in a compressed form, but will be automatically uncompressed when the resource is used. This
- is very useful e.g. for larger text files that are parsed once (or rarely) and then thrown away.
- Resource files can also be marked to be preprocessed, by setting the value of the
- `preprocess` attribute to a comma-separated list of preprocessing options.
- The only options currently supported are:
- `xml-stripblanks` which will use the xmllint command
- to strip ignorable whitespace from the XML file. For this to work,
- the `XMLLINT` environment variable must be set to the full path to
- the xmllint executable, or xmllint must be in the `PATH`; otherwise
- the preprocessing step is skipped.
- `to-pixdata` which will use the gdk-pixbuf-pixdata command to convert
- images to the GdkPixdata format, which allows you to create pixbufs directly using the data inside
- the resource file, rather than an (uncompressed) copy if it. For this, the gdk-pixbuf-pixdata
- program must be in the PATH, or the `GDK_PIXBUF_PIXDATA` environment variable must be
- set to the full path to the gdk-pixbuf-pixdata executable; otherwise the resource compiler will
- abort.
- Resource bundles are created by the [glib-compile-resources][glib-compile-resources] program
- which takes an XML file that describes the bundle, and a set of files that the XML references. These
- are combined into a binary resource bundle.
- An example resource description:
- |[
- <?xml version="1.0" encoding="UTF-8"?>
- <gresources>
- <gresource prefix="/org/gtk/Example">
- <file>data/splashscreen.png</file>
- <file compressed="true">dialog.ui</file>
- <file preprocess="xml-stripblanks">menumarkup.xml</file>
- </gresource>
- </gresources>
- ]|
- This will create a resource bundle with the following files:
- |[
- /org/gtk/Example/data/splashscreen.png
- /org/gtk/Example/dialog.ui
- /org/gtk/Example/menumarkup.xml
- ]|
- Note that all resources in the process share the same namespace, so use Java-style
- path prefixes (like in the above example) to avoid conflicts.
- You can then use [glib-compile-resources][glib-compile-resources] to compile the XML to a
- binary bundle that you can load with g_resource_load(). However, its more common to use the --generate-source and
- --generate-header arguments to create a source file and header to link directly into your application.
- This will generate `get_resource()`, `register_resource()` and
- `unregister_resource()` functions, prefixed by the `--c-name` argument passed
- to [glib-compile-resources][glib-compile-resources]. `get_resource()` returns
- the generated #GResource object. The register and unregister functions
- register the resource so its files can be accessed using
- g_resources_lookup_data().
- Once a #GResource has been created and registered all the data in it can be accessed globally in the process by
- using API calls like g_resources_open_stream() to stream the data or g_resources_lookup_data() to get a direct pointer
- to the data. You can also use URIs like "resource:///org/gtk/Example/data/splashscreen.png" with #GFile to access
- the resource data.
- There are two forms of the generated source, the default version uses the compiler support for constructor
- and destructor functions (where available) to automatically create and register the #GResource on startup
- or library load time. If you pass --manual-register two functions to register/unregister the resource is instead
- created. This requires an explicit initialization call in your application/library, but it works on all platforms,
- even on the minor ones where this is not available. (Constructor support is available for at least Win32, Mac OS and Linux.)
- Note that resource data can point directly into the data segment of e.g. a library, so if you are unloading libraries
- during runtime you need to be very careful with keeping around pointers to data from a resource, as this goes away
- when the library is unloaded. However, in practice this is not generally a problem, since most resource accesses
- is for your own resources, and resource data is often used once, during parsing, and then released.</doc>
- <constructor name="new_from_data"
- c:identifier="g_resource_new_from_data"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Creates a GResource from a reference to the binary resource bundle.
- This will keep a reference to @data while the resource lives, so
- the data should not be modified or freed.
- If you want to use this resource in the global resource namespace you need
- to register it with g_resources_register().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GResource, or %NULL on error</doc>
- <type name="Resource" c:type="GResource*"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">A #GBytes</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="_register"
- c:identifier="g_resources_register"
- moved-to="resources_register"
- version="2.32">
- <doc xml:space="preserve">Registers the resource with the process-global set of resources.
- Once a resource is registered the files in it can be accessed
- with the global resource lookup functions like g_resources_lookup_data().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="_unregister"
- c:identifier="g_resources_unregister"
- moved-to="resources_unregister"
- version="2.32">
- <doc xml:space="preserve">Unregisters the resource from the process-global set of resources.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="enumerate_children"
- c:identifier="g_resource_enumerate_children"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Returns all the names of children at the specified @path in the resource.
- The return result is a %NULL terminated list of strings which should
- be released with g_strfreev().
- If @path is invalid or does not exist in the #GResource,
- %G_RESOURCE_ERROR_NOT_FOUND will be returned.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an array of constant strings</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_info"
- c:identifier="g_resource_get_info"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Looks for a file at the specified @path in the resource and
- if found returns information about it.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was found. %FALSE if there were errors</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the length of the contents of the file,
- or %NULL if the length is not needed</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="flags"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the flags about the file,
- or %NULL if the length is not needed</doc>
- <type name="guint32" c:type="guint32*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_data"
- c:identifier="g_resource_lookup_data"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Looks for a file at the specified @path in the resource and
- returns a #GBytes that lets you directly access the data in
- memory.
- The data is always followed by a zero byte, so you
- can safely use the data as a C string. However, that byte
- is not included in the size of the GBytes.
- For uncompressed resource files this is a pointer directly into
- the resource bundle, which is typically in some readonly data section
- in the program binary. For compressed files we allocate memory on
- the heap and automatically uncompress the data.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GBytes or %NULL on error.
- Free the returned object with g_bytes_unref()</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="open_stream"
- c:identifier="g_resource_open_stream"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Looks for a file at the specified @path in the resource and
- returns a #GInputStream that lets you read the data.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GInputStream or %NULL on error.
- Free the returned object with g_object_unref()</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="g_resource_ref" version="2.32">
- <doc xml:space="preserve">Atomically increments the reference count of @resource by one. This
- function is MT-safe and may be called from any thread.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The passed in #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="g_resource_unref" version="2.32">
- <doc xml:space="preserve">Atomically decrements the reference count of @resource by one. If the
- reference count drops to 0, all memory allocated by the resource is
- released. This function is MT-safe and may be called from any
- thread.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="load"
- c:identifier="g_resource_load"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Loads a binary resource bundle and creates a #GResource representation of it, allowing
- you to query it for data.
- If you want to use this resource in the global resource namespace you need
- to register it with g_resources_register().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GResource, or %NULL on error</doc>
- <type name="Resource" c:type="GResource*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">the path of a filename to load, in the GLib filename encoding</doc>
- <type name="filename" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <enumeration name="ResourceError"
- version="2.32"
- glib:type-name="GResourceError"
- glib:get-type="g_resource_error_get_type"
- c:type="GResourceError"
- glib:error-domain="g-resource-error-quark">
- <doc xml:space="preserve">An error code used with %G_RESOURCE_ERROR in a #GError returned
- from a #GResource routine.</doc>
- <member name="not_found"
- value="0"
- c:identifier="G_RESOURCE_ERROR_NOT_FOUND"
- glib:nick="not-found">
- <doc xml:space="preserve">no file was found at the requested path</doc>
- </member>
- <member name="internal"
- value="1"
- c:identifier="G_RESOURCE_ERROR_INTERNAL"
- glib:nick="internal">
- <doc xml:space="preserve">unknown error</doc>
- </member>
- <function name="quark"
- c:identifier="g_resource_error_quark"
- version="2.32">
- <doc xml:space="preserve">Gets the #GResource Error Quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <bitfield name="ResourceFlags"
- version="2.32"
- glib:type-name="GResourceFlags"
- glib:get-type="g_resource_flags_get_type"
- c:type="GResourceFlags">
- <doc xml:space="preserve">GResourceFlags give information about a particular file inside a resource
- bundle.</doc>
- <member name="none"
- value="0"
- c:identifier="G_RESOURCE_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- <member name="compressed"
- value="1"
- c:identifier="G_RESOURCE_FLAGS_COMPRESSED"
- glib:nick="compressed">
- <doc xml:space="preserve">The file is compressed.</doc>
- </member>
- </bitfield>
- <bitfield name="ResourceLookupFlags"
- version="2.32"
- glib:type-name="GResourceLookupFlags"
- glib:get-type="g_resource_lookup_flags_get_type"
- c:type="GResourceLookupFlags">
- <doc xml:space="preserve">GResourceLookupFlags determine how resource path lookups are handled.</doc>
- <member name="none"
- value="0"
- c:identifier="G_RESOURCE_LOOKUP_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags set.</doc>
- </member>
- </bitfield>
- <interface name="Seekable"
- c:symbol-prefix="seekable"
- c:type="GSeekable"
- glib:type-name="GSeekable"
- glib:get-type="g_seekable_get_type"
- glib:type-struct="SeekableIface">
- <doc xml:space="preserve">#GSeekable is implemented by streams (implementations of
- #GInputStream or #GOutputStream) that support seeking.
- Seekable streams largely fall into two categories: resizable and
- fixed-size.
- #GSeekable on fixed-sized streams is approximately the same as POSIX
- lseek() on a block device (for example: attmepting to seek past the
- end of the device is an error). Fixed streams typically cannot be
- truncated.
- #GSeekable on resizable streams is approximately the same as POSIX
- lseek() on a normal file. Seeking past the end and writing data will
- usually cause the stream to resize by introducing zero bytes.</doc>
- <virtual-method name="can_seek" invoker="can_seek">
- <doc xml:space="preserve">Tests if the stream supports the #GSeekableIface.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @seekable can be seeked. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_truncate" invoker="can_truncate">
- <doc xml:space="preserve">Tests if the stream can be truncated.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream can be truncated, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="seek" invoker="seek" throws="1">
- <doc xml:space="preserve">Seeks in the stream by the given @offset, modified by @type.
- Attempting to seek past the end of the stream will have different
- results depending on if the stream is fixed-sized or resizable. If
- the stream is resizable then seeking past the end and then writing
- will result in zeros filling the empty space. Seeking past the end
- of a resizable stream and reading will result in EOF. Seeking past
- the end of a fixed-sized stream will fail.
- Any operation that would result in a negative offset will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error
- has occurred, this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekType.</doc>
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="tell" invoker="tell">
- <doc xml:space="preserve">Tells the current position within the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the offset from the beginning of the buffer.</doc>
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="truncate_fn" invoker="truncate" throws="1">
- <doc xml:space="preserve">Truncates a stream with a given #offset.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error
- has occurred, this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="can_seek" c:identifier="g_seekable_can_seek">
- <doc xml:space="preserve">Tests if the stream supports the #GSeekableIface.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @seekable can be seeked. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_truncate" c:identifier="g_seekable_can_truncate">
- <doc xml:space="preserve">Tests if the stream can be truncated.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream can be truncated, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="seek" c:identifier="g_seekable_seek" throws="1">
- <doc xml:space="preserve">Seeks in the stream by the given @offset, modified by @type.
- Attempting to seek past the end of the stream will have different
- results depending on if the stream is fixed-sized or resizable. If
- the stream is resizable then seeking past the end and then writing
- will result in zeros filling the empty space. Seeking past the end
- of a resizable stream and reading will result in EOF. Seeking past
- the end of a fixed-sized stream will fail.
- Any operation that would result in a negative offset will fail.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error
- has occurred, this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekType.</doc>
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="tell" c:identifier="g_seekable_tell">
- <doc xml:space="preserve">Tells the current position within the stream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the offset from the beginning of the buffer.</doc>
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="truncate" c:identifier="g_seekable_truncate" throws="1">
- <doc xml:space="preserve">Truncates a stream with a given #offset.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- operation was partially finished when the operation was cancelled the
- partial result will be returned, without an error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error
- has occurred, this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </instance-parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="SeekableIface"
- c:type="GSeekableIface"
- glib:is-gtype-struct-for="Seekable">
- <doc xml:space="preserve">Provides an interface for implementing seekable functionality on I/O Streams.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="tell">
- <callback name="tell">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the offset from the beginning of the buffer.</doc>
- <type name="gint64" c:type="goffset"/>
- </return-value>
- <parameters>
- <parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_seek">
- <callback name="can_seek">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @seekable can be seeked. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="seek">
- <callback name="seek" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error
- has occurred, this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekType.</doc>
- <type name="GLib.SeekType" c:type="GSeekType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_truncate">
- <callback name="can_truncate">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the stream can be truncated, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="truncate_fn">
- <callback name="truncate_fn" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful. If an error
- has occurred, this function will return %FALSE and set @error
- appropriately if present.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="seekable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSeekable.</doc>
- <type name="Seekable" c:type="GSeekable*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">a #goffset.</doc>
- <type name="gint64" c:type="goffset"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="Settings"
- c:symbol-prefix="settings"
- c:type="GSettings"
- parent="GObject.Object"
- glib:type-name="GSettings"
- glib:get-type="g_settings_get_type"
- glib:type-struct="SettingsClass">
- <doc xml:space="preserve">The #GSettings class provides a convenient API for storing and retrieving
- application settings.
- Reads and writes can be considered to be non-blocking. Reading
- settings with #GSettings is typically extremely fast: on
- approximately the same order of magnitude (but slower than) a
- #GHashTable lookup. Writing settings is also extremely fast in terms
- of time to return to your application, but can be extremely expensive
- for other threads and other processes. Many settings backends
- (including dconf) have lazy initialisation which means in the common
- case of the user using their computer without modifying any settings
- a lot of work can be avoided. For dconf, the D-Bus service doesn't
- even need to be started in this case. For this reason, you should
- only ever modify #GSettings keys in response to explicit user action.
- Particular care should be paid to ensure that modifications are not
- made during startup -- for example, when setting the initial value
- of preferences widgets. The built-in g_settings_bind() functionality
- is careful not to write settings in response to notify signals as a
- result of modifications that it makes to widgets.
- When creating a GSettings instance, you have to specify a schema
- that describes the keys in your settings and their types and default
- values, as well as some other information.
- Normally, a schema has as fixed path that determines where the settings
- are stored in the conceptual global tree of settings. However, schemas
- can also be '[relocatable][gsettings-relocatable]', i.e. not equipped with
- a fixed path. This is
- useful e.g. when the schema describes an 'account', and you want to be
- able to store a arbitrary number of accounts.
- Paths must start with and end with a forward slash character ('/')
- and must not contain two sequential slash characters. Paths should
- be chosen based on a domain name associated with the program or
- library to which the settings belong. Examples of paths are
- "/org/gtk/settings/file-chooser/" and "/ca/desrt/dconf-editor/".
- Paths should not start with "/apps/", "/desktop/" or "/system/" as
- they often did in GConf.
- Unlike other configuration systems (like GConf), GSettings does not
- restrict keys to basic types like strings and numbers. GSettings stores
- values as #GVariant, and allows any #GVariantType for keys. Key names
- are restricted to lowercase characters, numbers and '-'. Furthermore,
- the names must begin with a lowercase character, must not end
- with a '-', and must not contain consecutive dashes.
- Similar to GConf, the default values in GSettings schemas can be
- localized, but the localized values are stored in gettext catalogs
- and looked up with the domain that is specified in the
- `gettext-domain` attribute of the <schemalist> or <schema>
- elements and the category that is specified in the `l10n` attribute of
- the <default> element. The string which is translated includes all text in
- the <default> element, including any surrounding quotation marks.
- The `l10n` attribute must be set to `messages` or `time`, and sets the
- [locale category for
- translation](https://www.gnu.org/software/gettext/manual/html_node/Aspects.html#index-locale-categories-1).
- The `messages` category should be used by default; use `time` for
- translatable date or time formats. A translation comment can be added as an
- XML comment immediately above the <default> element — it is recommended to
- add these comments to aid translators understand the meaning and
- implications of the default value. An optional translation `context`
- attribute can be set on the <default> element to disambiguate multiple
- defaults which use the same string.
- For example:
- |[
- <!-- Translators: A list of words which are not allowed to be typed, in
- GVariant serialization syntax.
- See: https://developer.gnome.org/glib/stable/gvariant-text.html -->
- <default l10n='messages' context='Banned words'>['bad', 'words']</default>
- ]|
- Translations of default values must remain syntactically valid serialized
- #GVariants (e.g. retaining any surrounding quotation marks) or runtime
- errors will occur.
- GSettings uses schemas in a compact binary form that is created
- by the [glib-compile-schemas][glib-compile-schemas]
- utility. The input is a schema description in an XML format.
- A DTD for the gschema XML format can be found here:
- [gschema.dtd](https://git.gnome.org/browse/glib/tree/gio/gschema.dtd)
- The [glib-compile-schemas][glib-compile-schemas] tool expects schema
- files to have the extension `.gschema.xml`.
- At runtime, schemas are identified by their id (as specified in the
- id attribute of the <schema> element). The convention for schema
- ids is to use a dotted name, similar in style to a D-Bus bus name,
- e.g. "org.gnome.SessionManager". In particular, if the settings are
- for a specific service that owns a D-Bus bus name, the D-Bus bus name
- and schema id should match. For schemas which deal with settings not
- associated with one named application, the id should not use
- StudlyCaps, e.g. "org.gnome.font-rendering".
- In addition to #GVariant types, keys can have types that have
- enumerated types. These can be described by a <choice>,
- <enum> or <flags> element, as seen in the
- [example][schema-enumerated]. The underlying type of such a key
- is string, but you can use g_settings_get_enum(), g_settings_set_enum(),
- g_settings_get_flags(), g_settings_set_flags() access the numeric values
- corresponding to the string value of enum and flags keys.
- An example for default value:
- |[
- <schemalist>
- <schema id="org.gtk.Test" path="/org/gtk/Test/" gettext-domain="test">
- <key name="greeting" type="s">
- <default l10n="messages">"Hello, earthlings"</default>
- <summary>A greeting</summary>
- <description>
- Greeting of the invading martians
- </description>
- </key>
- <key name="box" type="(ii)">
- <default>(20,30)</default>
- </key>
- </schema>
- </schemalist>
- ]|
- An example for ranges, choices and enumerated types:
- |[
- <schemalist>
- <enum id="org.gtk.Test.myenum">
- <value nick="first" value="1"/>
- <value nick="second" value="2"/>
- </enum>
- <flags id="org.gtk.Test.myflags">
- <value nick="flag1" value="1"/>
- <value nick="flag2" value="2"/>
- <value nick="flag3" value="4"/>
- </flags>
- <schema id="org.gtk.Test">
- <key name="key-with-range" type="i">
- <range min="1" max="100"/>
- <default>10</default>
- </key>
- <key name="key-with-choices" type="s">
- <choices>
- <choice value='Elisabeth'/>
- <choice value='Annabeth'/>
- <choice value='Joe'/>
- </choices>
- <aliases>
- <alias value='Anna' target='Annabeth'/>
- <alias value='Beth' target='Elisabeth'/>
- </aliases>
- <default>'Joe'</default>
- </key>
- <key name='enumerated-key' enum='org.gtk.Test.myenum'>
- <default>'first'</default>
- </key>
- <key name='flags-key' flags='org.gtk.Test.myflags'>
- <default>["flag1","flag2"]</default>
- </key>
- </schema>
- </schemalist>
- ]|
- ## Vendor overrides
- Default values are defined in the schemas that get installed by
- an application. Sometimes, it is necessary for a vendor or distributor
- to adjust these defaults. Since patching the XML source for the schema
- is inconvenient and error-prone,
- [glib-compile-schemas][glib-compile-schemas] reads so-called vendor
- override' files. These are keyfiles in the same directory as the XML
- schema sources which can override default values. The schema id serves
- as the group name in the key file, and the values are expected in
- serialized GVariant form, as in the following example:
- |[
- [org.gtk.Example]
- key1='string'
- key2=1.5
- ]|
- glib-compile-schemas expects schema files to have the extension
- `.gschema.override`.
- ## Binding
- A very convenient feature of GSettings lets you bind #GObject properties
- directly to settings, using g_settings_bind(). Once a GObject property
- has been bound to a setting, changes on either side are automatically
- propagated to the other side. GSettings handles details like mapping
- between GObject and GVariant types, and preventing infinite cycles.
- This makes it very easy to hook up a preferences dialog to the
- underlying settings. To make this even more convenient, GSettings
- looks for a boolean property with the name "sensitivity" and
- automatically binds it to the writability of the bound setting.
- If this 'magic' gets in the way, it can be suppressed with the
- #G_SETTINGS_BIND_NO_SENSITIVITY flag.
- ## Relocatable schemas # {#gsettings-relocatable}
- A relocatable schema is one with no `path` attribute specified on its
- <schema> element. By using g_settings_new_with_path(), a #GSettings object
- can be instantiated for a relocatable schema, assigning a path to the
- instance. Paths passed to g_settings_new_with_path() will typically be
- constructed dynamically from a constant prefix plus some form of instance
- identifier; but they must still be valid GSettings paths. Paths could also
- be constant and used with a globally installed schema originating from a
- dependency library.
- For example, a relocatable schema could be used to store geometry information
- for different windows in an application. If the schema ID was
- `org.foo.MyApp.Window`, it could be instantiated for paths
- `/org/foo/MyApp/main/`, `/org/foo/MyApp/document-1/`,
- `/org/foo/MyApp/document-2/`, etc. If any of the paths are well-known
- they can be specified as <child> elements in the parent schema, e.g.:
- |[
- <schema id="org.foo.MyApp" path="/org/foo/MyApp/">
- <child name="main" schema="org.foo.MyApp.Window"/>
- </schema>
- ]|
- ## Build system integration # {#gsettings-build-system}
- GSettings comes with autotools integration to simplify compiling and
- installing schemas. To add GSettings support to an application, add the
- following to your `configure.ac`:
- |[
- GLIB_GSETTINGS
- ]|
- In the appropriate `Makefile.am`, use the following snippet to compile and
- install the named schema:
- |[
- gsettings_SCHEMAS = org.foo.MyApp.gschema.xml
- EXTRA_DIST = $(gsettings_SCHEMAS)
- @GSETTINGS_RULES@
- ]|
- No changes are needed to the build system to mark a schema XML file for
- translation. Assuming it sets the `gettext-domain` attribute, a schema may
- be marked for translation by adding it to `POTFILES.in`, assuming gettext
- 0.19 is in use (the preferred method for translation):
- |[
- data/org.foo.MyApp.gschema.xml
- ]|
- Alternatively, if intltool 0.50.1 is in use:
- |[
- [type: gettext/gsettings]data/org.foo.MyApp.gschema.xml
- ]|
- GSettings will use gettext to look up translations for the <summary> and
- <description> elements, and also any <default> elements which have a `l10n`
- attribute set. Translations must not be included in the `.gschema.xml` file
- by the build system, for example by using intltool XML rules with a
- `.gschema.xml.in` template.
- If an enumerated type defined in a C header file is to be used in a GSettings
- schema, it can either be defined manually using an <enum> element in the
- schema XML, or it can be extracted automatically from the C header. This
- approach is preferred, as it ensures the two representations are always
- synchronised. To do so, add the following to the relevant `Makefile.am`:
- |[
- gsettings_ENUM_NAMESPACE = org.foo.MyApp
- gsettings_ENUM_FILES = my-app-enums.h my-app-misc.h
- ]|
- `gsettings_ENUM_NAMESPACE` specifies the schema namespace for the enum files,
- which are specified in `gsettings_ENUM_FILES`. This will generate a
- `org.foo.MyApp.enums.xml` file containing the extracted enums, which will be
- automatically included in the schema compilation, install and uninstall
- rules. It should not be committed to version control or included in
- `EXTRA_DIST`.</doc>
- <constructor name="new" c:identifier="g_settings_new" version="2.26">
- <doc xml:space="preserve">Creates a new #GSettings object with the schema specified by
- @schema_id.
- Signals on the newly created #GSettings object will be dispatched
- via the thread-default #GMainContext in effect at the time of the
- call to g_settings_new(). The new #GSettings will hold a reference
- on the context. See g_main_context_push_thread_default().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </return-value>
- <parameters>
- <parameter name="schema_id" transfer-ownership="none">
- <doc xml:space="preserve">the id of the schema</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_full"
- c:identifier="g_settings_new_full"
- version="2.32">
- <doc xml:space="preserve">Creates a new #GSettings object with a given schema, backend and
- path.
- It should be extremely rare that you ever want to use this function.
- It is made available for advanced use-cases (such as plugin systems
- that want to provide access to schemas loaded from custom locations,
- etc).
- At the most basic level, a #GSettings object is a pure composition of
- 4 things: a #GSettingsSchema, a #GSettingsBackend, a path within that
- backend, and a #GMainContext to which signals are dispatched.
- This constructor therefore gives you full control over constructing
- #GSettings instances. The first 3 parameters are given directly as
- @schema, @backend and @path, and the main context is taken from the
- thread-default (as per g_settings_new()).
- If @backend is %NULL then the default backend is used.
- If @path is %NULL then the path from the schema is used. It is an
- error if @path is %NULL and the schema has no path of its own or if
- @path is non-%NULL and not equal to the path that the schema does
- have.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </return-value>
- <parameters>
- <parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </parameter>
- <parameter name="backend"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GSettingsBackend</doc>
- <type name="SettingsBackend" c:type="GSettingsBackend*"/>
- </parameter>
- <parameter name="path"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the path to use</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_with_backend"
- c:identifier="g_settings_new_with_backend"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GSettings object with the schema specified by
- @schema_id and a given #GSettingsBackend.
- Creating a #GSettings object with a different backend allows accessing
- settings from a database other than the usual one. For example, it may make
- sense to pass a backend corresponding to the "defaults" settings database on
- the system to get a settings object that modifies the system default
- settings instead of the settings for this user.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </return-value>
- <parameters>
- <parameter name="schema_id" transfer-ownership="none">
- <doc xml:space="preserve">the id of the schema</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GSettingsBackend to use</doc>
- <type name="SettingsBackend" c:type="GSettingsBackend*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_with_backend_and_path"
- c:identifier="g_settings_new_with_backend_and_path"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GSettings object with the schema specified by
- @schema_id and a given #GSettingsBackend and path.
- This is a mix of g_settings_new_with_backend() and
- g_settings_new_with_path().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </return-value>
- <parameters>
- <parameter name="schema_id" transfer-ownership="none">
- <doc xml:space="preserve">the id of the schema</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GSettingsBackend to use</doc>
- <type name="SettingsBackend" c:type="GSettingsBackend*"/>
- </parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">the path to use</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_with_path"
- c:identifier="g_settings_new_with_path"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GSettings object with the relocatable schema specified
- by @schema_id and a given path.
- You only need to do this if you want to directly create a settings
- object with a schema that doesn't have a specified path of its own.
- That's quite rare.
- It is a programmer error to call this function for a schema that
- has an explicitly specified path.
- It is a programmer error if @path is not a valid path. A valid path
- begins and ends with '/' and does not contain two consecutive '/'
- characters.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </return-value>
- <parameters>
- <parameter name="schema_id" transfer-ownership="none">
- <doc xml:space="preserve">the id of the schema</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">the path to use</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="list_relocatable_schemas"
- c:identifier="g_settings_list_relocatable_schemas"
- version="2.28"
- deprecated="1"
- deprecated-version="2.40">
- <doc xml:space="preserve"><!-- --></doc>
- <doc-deprecated xml:space="preserve">Use g_settings_schema_source_list_schemas() instead</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a list of relocatable
- #GSettings schemas that are available. The list must not be
- modified or freed.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- </function>
- <function name="list_schemas"
- c:identifier="g_settings_list_schemas"
- version="2.26"
- deprecated="1"
- deprecated-version="2.40">
- <doc xml:space="preserve"><!-- --></doc>
- <doc-deprecated xml:space="preserve">Use g_settings_schema_source_list_schemas() instead.
- If you used g_settings_list_schemas() to check for the presence of
- a particular schema, use g_settings_schema_source_lookup() instead
- of your whole loop.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a list of #GSettings
- schemas that are available. The list must not be modified or
- freed.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- </function>
- <function name="sync" c:identifier="g_settings_sync">
- <doc xml:space="preserve">Ensures that all pending operations for the given are complete for
- the default backend.
- Writes made to a #GSettings are handled asynchronously. For this
- reason, it is very unlikely that the changes have it to disk by the
- time g_settings_set() returns.
- This call will block until all of the writes have made it to the
- backend. Since the mainloop is not running, no change notifications
- will be dispatched during this call (but some may be queued by the
- time the call is done).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="unbind" c:identifier="g_settings_unbind" version="2.26">
- <doc xml:space="preserve">Removes an existing binding for @property on @object.
- Note that bindings are automatically removed when the
- object is finalized, so it is rarely necessary to call this
- function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">the object</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property" transfer-ownership="none">
- <doc xml:space="preserve">the property whose binding is removed</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="change_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="keys" transfer-ownership="none">
- <type name="GLib.Quark" c:type="const GQuark*"/>
- </parameter>
- <parameter name="n_keys" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="writable_change_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="writable_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="apply" c:identifier="g_settings_apply">
- <doc xml:space="preserve">Applies any changes that have been made to the settings. This
- function does nothing unless @settings is in 'delay-apply' mode;
- see g_settings_delay(). In the normal case settings are always
- applied immediately.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings instance</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="bind" c:identifier="g_settings_bind" version="2.26">
- <doc xml:space="preserve">Create a binding between the @key in the @settings object
- and the property @property of @object.
- The binding uses the default GIO mapping functions to map
- between the settings and property values. These functions
- handle booleans, numeric types and string types in a
- straightforward way. Use g_settings_bind_with_mapping() if
- you need a custom mapping, or map between types that are not
- supported by the default mapping functions.
- Unless the @flags include %G_SETTINGS_BIND_NO_SENSITIVITY, this
- function also establishes a binding between the writability of
- @key and the "sensitive" property of @object (if @object has
- a boolean property by that name). See g_settings_bind_writable()
- for more details about writable bindings.
- Note that the lifecycle of the binding is tied to the object,
- and that you can have only one binding per object property.
- If you bind the same property twice on the same object, the second
- binding overrides the first one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to bind</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property" transfer-ownership="none">
- <doc xml:space="preserve">the name of the property to bind</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags for the binding</doc>
- <type name="SettingsBindFlags" c:type="GSettingsBindFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="bind_with_mapping"
- c:identifier="g_settings_bind_with_mapping"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Create a binding between the @key in the @settings object
- and the property @property of @object.
- The binding uses the provided mapping functions to map between
- settings and property values.
- Note that the lifecycle of the binding is tied to the object,
- and that you can have only one binding per object property.
- If you bind the same property twice on the same object, the second
- binding overrides the first one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to bind</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property" transfer-ownership="none">
- <doc xml:space="preserve">the name of the property to bind</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags for the binding</doc>
- <type name="SettingsBindFlags" c:type="GSettingsBindFlags"/>
- </parameter>
- <parameter name="get_mapping" transfer-ownership="none">
- <doc xml:space="preserve">a function that gets called to convert values
- from @settings to @object, or %NULL to use the default GIO mapping</doc>
- <type name="SettingsBindGetMapping"
- c:type="GSettingsBindGetMapping"/>
- </parameter>
- <parameter name="set_mapping"
- transfer-ownership="none"
- scope="notified"
- closure="6"
- destroy="7">
- <doc xml:space="preserve">a function that gets called to convert values
- from @object to @settings, or %NULL to use the default GIO mapping</doc>
- <type name="SettingsBindSetMapping"
- c:type="GSettingsBindSetMapping"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data that gets passed to @get_mapping and @set_mapping</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">#GDestroyNotify function for @user_data</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="bind_writable"
- c:identifier="g_settings_bind_writable"
- version="2.26">
- <doc xml:space="preserve">Create a binding between the writability of @key in the
- @settings object and the property @property of @object.
- The property must be boolean; "sensitive" or "visible"
- properties of widgets are the most likely candidates.
- Writable bindings are always uni-directional; changes of the
- writability of the setting will be propagated to the object
- property, not the other way.
- When the @inverted argument is %TRUE, the binding inverts the
- value as it passes from the setting to the object, i.e. @property
- will be set to %TRUE if the key is not writable.
- Note that the lifecycle of the binding is tied to the object,
- and that you can have only one binding per object property.
- If you bind the same property twice on the same object, the second
- binding overrides the first one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to bind</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="property" transfer-ownership="none">
- <doc xml:space="preserve">the name of a boolean property to bind</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="inverted" transfer-ownership="none">
- <doc xml:space="preserve">whether to 'invert' the value</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_action"
- c:identifier="g_settings_create_action"
- version="2.32">
- <doc xml:space="preserve">Creates a #GAction corresponding to a given #GSettings key.
- The action has the same name as the key.
- The value of the key becomes the state of the action and the action
- is enabled when the key is writable. Changing the state of the
- action results in the key being written to. Changes to the value or
- writability of the key cause appropriate change notifications to be
- emitted for the action.
- For boolean-valued keys, action activations take no parameter and
- result in the toggling of the value. For all other types,
- activations take the new value for the key (which must have the
- correct type).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of a key in @settings</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="delay" c:identifier="g_settings_delay" version="2.26">
- <doc xml:space="preserve">Changes the #GSettings object into 'delay-apply' mode. In this
- mode, changes to @settings are not immediately propagated to the
- backend, but kept locally until g_settings_apply() is called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get"
- c:identifier="g_settings_get"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings.
- A convenience function that combines g_settings_get_value() with
- g_variant_get().
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or for the #GVariantType of @format to mismatch
- the type given in the schema.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">arguments as per @format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean"
- c:identifier="g_settings_get_boolean"
- version="2.26">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings.
- A convenience variant of g_settings_get() for booleans.
- It is a programmer error to give a @key that isn't specified as
- having a boolean type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a boolean</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_child"
- c:identifier="g_settings_get_child"
- version="2.26">
- <doc xml:space="preserve">Creates a child settings object which has a base path of
- `base-path/@name`, where `base-path` is the base path of
- @settings.
- The schema for the child settings object must have been declared
- in the schema of @settings using a <child> element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a 'child' settings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the child schema</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_default_value"
- c:identifier="g_settings_get_default_value"
- version="2.40">
- <doc xml:space="preserve">Gets the "default value" of a key.
- This is the value that would be read if g_settings_reset() were to be
- called on the key.
- Note that this may be a different value than returned by
- g_settings_schema_key_get_default_value() if the system administrator
- has provided a default value.
- Comparing the return values of g_settings_get_default_value() and
- g_settings_get_value() is not sufficient for determining if a value
- has been set because the user may have explicitly set the value to
- something that happens to be equal to the default. The difference
- here is that if the default changes in the future, the user's key
- will still be set.
- This function may be useful for adding an indication to a UI of what
- the default value was before the user set it.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the default value</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the default value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double"
- c:identifier="g_settings_get_double"
- version="2.26">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings.
- A convenience variant of g_settings_get() for doubles.
- It is a programmer error to give a @key that isn't specified as
- having a 'double' type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a double</doc>
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_enum"
- c:identifier="g_settings_get_enum"
- version="2.26">
- <doc xml:space="preserve">Gets the value that is stored in @settings for @key and converts it
- to the enum value that it represents.
- In order to use this function the type of the value must be a string
- and it must be marked in the schema file as an enumerated type.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or is not marked as an enumerated type.
- If the value stored in the configuration database is not a valid
- value for the enumerated type then this function will return the
- default value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the enum value</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_settings_get_flags"
- version="2.26">
- <doc xml:space="preserve">Gets the value that is stored in @settings for @key and converts it
- to the flags value that it represents.
- In order to use this function the type of the value must be an array
- of strings and it must be marked in the schema file as an flags type.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or is not marked as a flags type.
- If the value stored in the configuration database is not a valid
- value for the flags type then this function will return the default
- value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the flags value</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_has_unapplied"
- c:identifier="g_settings_get_has_unapplied"
- version="2.26">
- <doc xml:space="preserve">Returns whether the #GSettings object has any unapplied
- changes. This can only be the case if it is in 'delayed-apply' mode.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @settings has unapplied changes</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_int" c:identifier="g_settings_get_int" version="2.26">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings.
- A convenience variant of g_settings_get() for 32-bit integers.
- It is a programmer error to give a @key that isn't specified as
- having a int32 type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_mapped" c:identifier="g_settings_get_mapped">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings, subject to
- application-level validation/mapping.
- You should use this function when the application needs to perform
- some processing on the value of the key (for example, parsing). The
- @mapping function performs that processing. If the function
- indicates that the processing was unsuccessful (due to a parse error,
- for example) then the mapping is tried again with another value.
- This allows a robust 'fall back to defaults' behaviour to be
- implemented somewhat automatically.
- The first value that is tried is the user's setting for the key. If
- the mapping function fails to map this value, other values may be
- tried in an unspecified order (system or site defaults, translated
- schema default values, untranslated schema default values, etc).
- If the mapping function fails for all possible values, one additional
- attempt is made: the mapping function is called with a %NULL value.
- If the mapping function still indicates failure at this point then
- the application will be aborted.
- The result parameter for the @mapping function is pointed to a
- #gpointer which is initially set to %NULL. The same pointer is given
- to each invocation of @mapping. The final value of that #gpointer is
- what is returned by this function. %NULL is valid; it is returned
- just as any other value would be.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the result, which may be %NULL</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="mapping"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <doc xml:space="preserve">the function to map the value in the
- settings database to the value used by the application</doc>
- <type name="SettingsGetMapping" c:type="GSettingsGetMapping"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for @mapping</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_range"
- c:identifier="g_settings_get_range"
- version="2.28"
- deprecated="1"
- deprecated-version="2.40">
- <doc xml:space="preserve">Queries the range of a key.</doc>
- <doc-deprecated xml:space="preserve">Use g_settings_schema_key_get_range() instead.</doc-deprecated>
- <return-value transfer-ownership="full">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to query the range of</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_string"
- c:identifier="g_settings_get_string"
- version="2.26">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings.
- A convenience variant of g_settings_get() for strings.
- It is a programmer error to give a @key that isn't specified as
- having a string type in the schema for @settings.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly-allocated string</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_strv"
- c:identifier="g_settings_get_strv"
- version="2.26">
- <doc xml:space="preserve">A convenience variant of g_settings_get() for string arrays.
- It is a programmer error to give a @key that isn't specified as
- having an array of strings type in the schema for @settings.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a
- newly-allocated, %NULL-terminated array of strings, the value that
- is stored at @key in @settings.</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint"
- c:identifier="g_settings_get_uint"
- version="2.30">
- <doc xml:space="preserve">Gets the value that is stored at @key in @settings.
- A convenience variant of g_settings_get() for 32-bit unsigned
- integers.
- It is a programmer error to give a @key that isn't specified as
- having a uint32 type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an unsigned integer</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_user_value"
- c:identifier="g_settings_get_user_value"
- version="2.40">
- <doc xml:space="preserve">Checks the "user value" of a key, if there is one.
- The user value of a key is the last value that was set by the user.
- After calling g_settings_reset() this function should always return
- %NULL (assuming something is not wrong with the system
- configuration).
- It is possible that g_settings_get_value() will return a different
- value than this function. This can happen in the case that the user
- set a value for a key that was subsequently locked down by the system
- administrator -- this function will return the user's old value.
- This function may be useful for adding a "reset" option to a UI or
- for providing indication that a particular value has been changed.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the user's value, if set</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the user value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value"
- c:identifier="g_settings_get_value"
- version="2.26">
- <doc xml:space="preserve">Gets the value that is stored in @settings for @key.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GVariant</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to get the value for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_writable"
- c:identifier="g_settings_is_writable"
- version="2.26">
- <doc xml:space="preserve">Finds out if a key can be written or not</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the key @name is writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of a key</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_children" c:identifier="g_settings_list_children">
- <doc xml:space="preserve">Gets the list of children on @settings.
- The list is exactly the list of strings for which it is not an error
- to call g_settings_get_child().
- For GSettings objects that are lists, this value can change at any
- time and you should connect to the "children-changed" signal to watch
- for those changes. Note that there is a race condition here: you may
- request a child after listing it only for it to have been destroyed
- in the meantime. For this reason, g_settings_get_child() may return
- %NULL even for a child that was listed by this function.
- For GSettings objects that are not lists, you should probably not be
- calling this function from "normal" code (since you should already
- know what children are in your schema). This function may still be
- useful there for introspection reasons, however.
- You should free the return value with g_strfreev() when you are done
- with it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of the children on @settings</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="list_keys" c:identifier="g_settings_list_keys">
- <doc xml:space="preserve">Introspects the list of keys on @settings.
- You should probably not be calling this function from "normal" code
- (since you should already know what keys are in your schema). This
- function is intended for introspection reasons.
- You should free the return value with g_strfreev() when you are done
- with it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of the keys on @settings</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="range_check"
- c:identifier="g_settings_range_check"
- version="2.28"
- deprecated="1"
- deprecated-version="2.40">
- <doc xml:space="preserve">Checks if the given @value is of the correct type and within the
- permitted range for @key.</doc>
- <doc-deprecated xml:space="preserve">Use g_settings_schema_key_range_check() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @value is valid for @key</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key to check</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to check</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="reset" c:identifier="g_settings_reset">
- <doc xml:space="preserve">Resets @key to its default value.
- This call resets the key, as much as possible, to its default value.
- That might the value specified in the schema or the one set by the
- administrator.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of a key</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="revert" c:identifier="g_settings_revert">
- <doc xml:space="preserve">Reverts all non-applied changes to the settings. This function
- does nothing unless @settings is in 'delay-apply' mode; see
- g_settings_delay(). In the normal case settings are always applied
- immediately.
- Change notifications will be emitted for affected keys.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings instance</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set"
- c:identifier="g_settings_set"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience function that combines g_settings_set_value() with
- g_variant_new().
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or for the #GVariantType of @format to mismatch
- the type given in the schema.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">arguments as per @format</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_boolean"
- c:identifier="g_settings_set_boolean"
- version="2.26">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience variant of g_settings_set() for booleans.
- It is a programmer error to give a @key that isn't specified as
- having a boolean type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set it to</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_double"
- c:identifier="g_settings_set_double"
- version="2.26">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience variant of g_settings_set() for doubles.
- It is a programmer error to give a @key that isn't specified as
- having a 'double' type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set it to</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_enum" c:identifier="g_settings_set_enum">
- <doc xml:space="preserve">Looks up the enumerated type nick for @value and writes it to @key,
- within @settings.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or is not marked as an enumerated type, or for
- @value not to be a valid value for the named type.
- After performing the write, accessing @key directly with
- g_settings_get_string() will return the 'nick' associated with
- @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the set succeeds</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a key, within @settings</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">an enumerated value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flags" c:identifier="g_settings_set_flags">
- <doc xml:space="preserve">Looks up the flags type nicks for the bits specified by @value, puts
- them in an array of strings and writes the array to @key, within
- @settings.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or is not marked as a flags type, or for @value
- to contain any bits that are not value for the named type.
- After performing the write, accessing @key directly with
- g_settings_get_strv() will return an array of 'nicks'; one for each
- bit in @value.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the set succeeds</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a key, within @settings</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a flags value</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_int" c:identifier="g_settings_set_int" version="2.26">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience variant of g_settings_set() for 32-bit integers.
- It is a programmer error to give a @key that isn't specified as
- having a int32 type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set it to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_string"
- c:identifier="g_settings_set_string"
- version="2.26">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience variant of g_settings_set() for strings.
- It is a programmer error to give a @key that isn't specified as
- having a string type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set it to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_strv"
- c:identifier="g_settings_set_strv"
- version="2.26">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience variant of g_settings_set() for string arrays. If
- @value is %NULL, then @key is set to be the empty array.
- It is a programmer error to give a @key that isn't specified as
- having an array of strings type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the value to set it to, or %NULL</doc>
- <array c:type="gchar**">
- <type name="utf8" c:type="gchar*"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="set_uint"
- c:identifier="g_settings_set_uint"
- version="2.30">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- A convenience variant of g_settings_set() for 32-bit unsigned
- integers.
- It is a programmer error to give a @key that isn't specified as
- having a uint32 type in the schema for @settings.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set it to</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_value"
- c:identifier="g_settings_set_value"
- version="2.26">
- <doc xml:space="preserve">Sets @key in @settings to @value.
- It is a programmer error to give a @key that isn't contained in the
- schema for @settings or for @value to have the incorrect type, per
- the schema.
- If @value is floating then this function consumes the reference.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if setting the key succeeded,
- %FALSE if the key was not writable</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="settings" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettings object</doc>
- <type name="Settings" c:type="GSettings*"/>
- </instance-parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key to set</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant of the correct type</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <property name="backend"
- introspectable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type/>
- </property>
- <property name="delay-apply" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">Whether the #GSettings object is in 'delay-apply' mode. See
- g_settings_delay() for details.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="has-unapplied" transfer-ownership="none">
- <doc xml:space="preserve">If this property is %TRUE, the #GSettings object has outstanding
- changes that will be applied when g_settings_apply() is called.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="path"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The path within the backend where the settings are stored.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="schema"
- deprecated="1"
- deprecated-version="2.32"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The name of the schema that describes the types of keys
- for this #GSettings object.
- The type of this property is *not* #GSettingsSchema.
- #GSettingsSchema has only existed since version 2.32 and
- unfortunately this name was used in previous versions to refer to
- the schema ID rather than the schema itself. Take care to use the
- 'settings-schema' property if you wish to pass in a
- #GSettingsSchema.</doc>
- <doc-deprecated xml:space="preserve">Use the 'schema-id' property instead. In a future
- version, this property may instead refer to a #GSettingsSchema.</doc-deprecated>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="schema-id"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The name of the schema that describes the types of keys
- for this #GSettings object.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="settings-schema"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GSettingsSchema describing the types of keys for this
- #GSettings object.
- Ideally, this property would be called 'schema'. #GSettingsSchema
- has only existed since version 2.32, however, and before then the
- 'schema' property was used to refer to the ID of the schema rather
- than the schema itself. Take care.</doc>
- <type name="SettingsSchema"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="SettingsPrivate" c:type="GSettingsPrivate*"/>
- </field>
- <glib:signal name="change-event" when="last">
- <doc xml:space="preserve">The "change-event" signal is emitted once per change event that
- affects this settings object. You should connect to this signal
- only if you are interested in viewing groups of changes before they
- are split out into multiple emissions of the "changed" signal.
- For most use cases it is more appropriate to use the "changed" signal.
- In the event that the change event applies to one or more specified
- keys, @keys will be an array of #GQuark of length @n_keys. In the
- event that the change event applies to the #GSettings object as a
- whole (ie: potentially every key has been changed) then @keys will
- be %NULL and @n_keys will be 0.
- The default handler for this signal invokes the "changed" signal
- for each affected key. If any other connected handler returns
- %TRUE then this default functionality will be suppressed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the
- event. FALSE to propagate the event further.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="keys"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">
- an array of #GQuarks for the changed keys, or %NULL</doc>
- <array length="1" zero-terminated="0" c:type="gpointer">
- <type name="GLib.Quark"/>
- </array>
- </parameter>
- <parameter name="n_keys" transfer-ownership="none">
- <doc xml:space="preserve">the length of the @keys array, or 0</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="changed" when="last" detailed="1">
- <doc xml:space="preserve">The "changed" signal is emitted when a key has potentially changed.
- You should call one of the g_settings_get() calls to check the new
- value.
- This signal supports detailed connections. You can connect to the
- detailed signal "changed::x" in order to only receive callbacks
- when key "x" changes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the name of the key that changed</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="writable-change-event" when="last">
- <doc xml:space="preserve">The "writable-change-event" signal is emitted once per writability
- change event that affects this settings object. You should connect
- to this signal if you are interested in viewing groups of changes
- before they are split out into multiple emissions of the
- "writable-changed" signal. For most use cases it is more
- appropriate to use the "writable-changed" signal.
- In the event that the writability change applies only to a single
- key, @key will be set to the #GQuark for that key. In the event
- that the writability change affects the entire settings object,
- @key will be 0.
- The default handler for this signal invokes the "writable-changed"
- and "changed" signals for each affected key. This is done because
- changes in writability might also imply changes in value (if for
- example, a new mandatory setting is introduced). If any other
- connected handler returns %TRUE then this default functionality
- will be suppressed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop other handlers from being invoked for the
- event. FALSE to propagate the event further.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the quark of the key, or 0</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="writable-changed" when="last" detailed="1">
- <doc xml:space="preserve">The "writable-changed" signal is emitted when the writability of a
- key has potentially changed. You should call
- g_settings_is_writable() in order to determine the new status.
- This signal supports detailed connections. You can connect to the
- detailed signal "writable-changed::x" in order to only receive
- callbacks when the writability of "x" changes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">the key</doc>
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="SettingsBackend" c:type="GSettingsBackend" disguised="1">
- <doc xml:space="preserve">The #GSettingsBackend interface defines a generic interface for
- non-strictly-typed data that is stored in a hierarchy. To implement
- an alternative storage backend for #GSettings, you need to implement
- the #GSettingsBackend interface and then make it implement the
- extension point #G_SETTINGS_BACKEND_EXTENSION_POINT_NAME.
- The interface defines methods for reading and writing values, a
- method for determining if writing of certain values will fail
- (lockdown) and a change notification mechanism.
- The semantics of the interface are very precisely defined and
- implementations must carefully adhere to the expectations of
- callers that are documented on each of the interface methods.
- Some of the GSettingsBackend functions accept or return a #GTree.
- These trees always have strings as keys and #GVariant as values.
- g_settings_backend_create_tree() is a convenience function to create
- suitable trees.
- The GSettingsBackend API is exported to allow third-party
- implementations, but does not carry the same stability guarantees
- as the public GIO API. For this reason, you have to define the
- C preprocessor symbol %G_SETTINGS_ENABLE_BACKEND before including
- `gio/gsettingsbackend.h`.</doc>
- </record>
- <bitfield name="SettingsBindFlags"
- glib:type-name="GSettingsBindFlags"
- glib:get-type="g_settings_bind_flags_get_type"
- c:type="GSettingsBindFlags">
- <doc xml:space="preserve">Flags used when creating a binding. These flags determine in which
- direction the binding works. The default is to synchronize in both
- directions.</doc>
- <member name="default"
- value="0"
- c:identifier="G_SETTINGS_BIND_DEFAULT"
- glib:nick="default">
- <doc xml:space="preserve">Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET`</doc>
- </member>
- <member name="get"
- value="1"
- c:identifier="G_SETTINGS_BIND_GET"
- glib:nick="get">
- <doc xml:space="preserve">Update the #GObject property when the setting changes.
- It is an error to use this flag if the property is not writable.</doc>
- </member>
- <member name="set"
- value="2"
- c:identifier="G_SETTINGS_BIND_SET"
- glib:nick="set">
- <doc xml:space="preserve">Update the setting when the #GObject property changes.
- It is an error to use this flag if the property is not readable.</doc>
- </member>
- <member name="no_sensitivity"
- value="4"
- c:identifier="G_SETTINGS_BIND_NO_SENSITIVITY"
- glib:nick="no-sensitivity">
- <doc xml:space="preserve">Do not try to bind a "sensitivity" property to the writability of the setting</doc>
- </member>
- <member name="get_no_changes"
- value="8"
- c:identifier="G_SETTINGS_BIND_GET_NO_CHANGES"
- glib:nick="get-no-changes">
- <doc xml:space="preserve">When set in addition to #G_SETTINGS_BIND_GET, set the #GObject property
- value initially from the setting, but do not listen for changes of the setting</doc>
- </member>
- <member name="invert_boolean"
- value="16"
- c:identifier="G_SETTINGS_BIND_INVERT_BOOLEAN"
- glib:nick="invert-boolean">
- <doc xml:space="preserve">When passed to g_settings_bind(), uses a pair of mapping functions that invert
- the boolean value when mapping between the setting and the property. The setting and property must both
- be booleans. You cannot pass this flag to g_settings_bind_with_mapping().</doc>
- </member>
- </bitfield>
- <callback name="SettingsBindGetMapping" c:type="GSettingsBindGetMapping">
- <doc xml:space="preserve">The type for the function that is used to convert from #GSettings to
- an object property. The @value is already initialized to hold values
- of the appropriate type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the conversion succeeded, %FALSE in case of an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">return location for the property value</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="variant" transfer-ownership="none">
- <doc xml:space="preserve">the #GVariant</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data that was specified when the binding was created</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="SettingsBindSetMapping" c:type="GSettingsBindSetMapping">
- <doc xml:space="preserve">The type for the function that is used to convert an object property
- value to a #GVariant for storing it in #GSettings.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GVariant holding the data from @value,
- or %NULL in case of an error</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue containing the property value to map</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="expected_type" transfer-ownership="none">
- <doc xml:space="preserve">the #GVariantType to create</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">user data that was specified when the binding was created</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="SettingsClass"
- c:type="GSettingsClass"
- glib:is-gtype-struct-for="Settings">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="writable_changed">
- <callback name="writable_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </parameter>
- <parameter name="key" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="changed">
- <callback name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </parameter>
- <parameter name="key" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="writable_change_event">
- <callback name="writable_change_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </parameter>
- <parameter name="key" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="change_event">
- <callback name="change_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="settings" transfer-ownership="none">
- <type name="Settings" c:type="GSettings*"/>
- </parameter>
- <parameter name="keys" transfer-ownership="none">
- <type name="GLib.Quark" c:type="const GQuark*"/>
- </parameter>
- <parameter name="n_keys" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding">
- <array zero-terminated="0" c:type="gpointer" fixed-size="20">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <callback name="SettingsGetMapping" c:type="GSettingsGetMapping">
- <doc xml:space="preserve">The type of the function that is used to convert from a value stored
- in a #GSettings to a value that is useful to the application.
- If the value is successfully mapped, the result should be stored at
- @result and %TRUE returned. If mapping fails (for example, if @value
- is not in the right format) then %FALSE should be returned.
- If @value is %NULL then it means that the mapping function is being
- given a "last chance" to successfully return a valid value. %TRUE
- must be returned in this case.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the conversion succeeded, %FALSE in case of an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the #GVariant to map, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="result"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1">
- <doc xml:space="preserve">the result of the mapping</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the user data that was passed to
- g_settings_get_mapped()</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="SettingsPrivate" c:type="GSettingsPrivate" disguised="1">
- </record>
- <record name="SettingsSchema"
- c:type="GSettingsSchema"
- version="2.32"
- glib:type-name="GSettingsSchema"
- glib:get-type="g_settings_schema_get_type"
- c:symbol-prefix="settings_schema">
- <doc xml:space="preserve">The #GSettingsSchemaSource and #GSettingsSchema APIs provide a
- mechanism for advanced control over the loading of schemas and a
- mechanism for introspecting their content.
- Plugin loading systems that wish to provide plugins a way to access
- settings face the problem of how to make the schemas for these
- settings visible to GSettings. Typically, a plugin will want to ship
- the schema along with itself and it won't be installed into the
- standard system directories for schemas.
- #GSettingsSchemaSource provides a mechanism for dealing with this by
- allowing the creation of a new 'schema source' from which schemas can
- be acquired. This schema source can then become part of the metadata
- associated with the plugin and queried whenever the plugin requires
- access to some settings.
- Consider the following example:
- |[<!-- language="C" -->
- typedef struct
- {
- ...
- GSettingsSchemaSource *schema_source;
- ...
- } Plugin;
- Plugin *
- initialise_plugin (const gchar *dir)
- {
- Plugin *plugin;
- ...
- plugin->schema_source =
- g_settings_new_schema_source_from_directory (dir,
- g_settings_schema_source_get_default (), FALSE, NULL);
- ...
- return plugin;
- }
- ...
- GSettings *
- plugin_get_settings (Plugin *plugin,
- const gchar *schema_id)
- {
- GSettingsSchema *schema;
- if (schema_id == NULL)
- schema_id = plugin->identifier;
- schema = g_settings_schema_source_lookup (plugin->schema_source,
- schema_id, FALSE);
- if (schema == NULL)
- {
- ... disable the plugin or abort, etc ...
- }
- return g_settings_new_full (schema, NULL, NULL);
- }
- ]|
- The code above shows how hooks should be added to the code that
- initialises (or enables) the plugin to create the schema source and
- how an API can be added to the plugin system to provide a convenient
- way for the plugin to access its settings, using the schemas that it
- ships.
- From the standpoint of the plugin, it would need to ensure that it
- ships a gschemas.compiled file as part of itself, and then simply do
- the following:
- |[<!-- language="C" -->
- {
- GSettings *settings;
- gint some_value;
- settings = plugin_get_settings (self, NULL);
- some_value = g_settings_get_int (settings, "some-value");
- ...
- }
- ]|
- It's also possible that the plugin system expects the schema source
- files (ie: .gschema.xml files) instead of a gschemas.compiled file.
- In that case, the plugin loading system must compile the schemas for
- itself before attempting to create the settings source.</doc>
- <method name="get_id" c:identifier="g_settings_schema_get_id">
- <doc xml:space="preserve">Get the ID of @schema.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the ID</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_key"
- c:identifier="g_settings_schema_get_key"
- version="2.40">
- <doc xml:space="preserve">Gets the key named @name from @schema.
- It is a programmer error to request a key that does not exist. See
- g_settings_schema_list_keys().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GSettingsSchemaKey for @name</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of a key</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_path"
- c:identifier="g_settings_schema_get_path"
- version="2.32">
- <doc xml:space="preserve">Gets the path associated with @schema, or %NULL.
- Schemas may be single-instance or relocatable. Single-instance
- schemas correspond to exactly one set of keys in the backend
- database: those located at the path returned by this function.
- Relocatable schemas can be referenced by other schemas and can
- threfore describe multiple sets of keys at different locations. For
- relocatable schemas, this function will return %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the path of the schema, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_key"
- c:identifier="g_settings_schema_has_key"
- version="2.40">
- <doc xml:space="preserve">Checks if @schema has a key named @name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if such a key exists</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of a key</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_children"
- c:identifier="g_settings_schema_list_children"
- version="2.44">
- <doc xml:space="preserve">Gets the list of children in @schema.
- You should free the return value with g_strfreev() when you are done
- with it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of the children on @settings</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="list_keys"
- c:identifier="g_settings_schema_list_keys"
- version="2.46">
- <doc xml:space="preserve">Introspects the list of keys on @schema.
- You should probably not be calling this function from "normal" code
- (since you should already know what keys are in your schema). This
- function is intended for introspection reasons.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of the keys on
- @schema</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="g_settings_schema_ref" version="2.32">
- <doc xml:space="preserve">Increase the reference count of @schema, returning a new reference.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new reference to @schema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_settings_schema_unref"
- version="2.32">
- <doc xml:space="preserve">Decrease the reference count of @schema, possibly freeing it.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="schema" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="SettingsSchemaKey"
- c:type="GSettingsSchemaKey"
- glib:type-name="GSettingsSchemaKey"
- glib:get-type="g_settings_schema_key_get_type"
- c:symbol-prefix="settings_schema_key">
- <doc xml:space="preserve">#GSettingsSchemaKey is an opaque data structure and can only be accessed
- using the following functions.</doc>
- <method name="get_default_value"
- c:identifier="g_settings_schema_key_get_default_value"
- version="2.40">
- <doc xml:space="preserve">Gets the default value for @key.
- Note that this is the default value according to the schema. System
- administrator defaults and lockdown are not visible via this API.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the default value for the key</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_description"
- c:identifier="g_settings_schema_key_get_description"
- version="2.34">
- <doc xml:space="preserve">Gets the description for @key.
- If no description has been provided in the schema for @key, returns
- %NULL.
- The description can be one sentence to several paragraphs in length.
- Paragraphs are delimited with a double newline. Descriptions can be
- translated and the value returned from this function is is the
- current locale.
- This function is slow. The summary and description information for
- the schemas is not stored in the compiled schema database so this
- function has to parse all of the source XML files in the schema
- directory.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the description for @key, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name"
- c:identifier="g_settings_schema_key_get_name"
- version="2.44">
- <doc xml:space="preserve">Gets the name of @key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name of @key.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_range"
- c:identifier="g_settings_schema_key_get_range"
- version="2.40">
- <doc xml:space="preserve">Queries the range of a key.
- This function will return a #GVariant that fully describes the range
- of values that are valid for @key.
- The type of #GVariant returned is `(sv)`. The string describes
- the type of range restriction in effect. The type and meaning of
- the value contained in the variant depends on the string.
- If the string is `'type'` then the variant contains an empty array.
- The element type of that empty array is the expected type of value
- and all values of that type are valid.
- If the string is `'enum'` then the variant contains an array
- enumerating the possible values. Each item in the array is
- a possible valid value and no other values are valid.
- If the string is `'flags'` then the variant contains an array. Each
- item in the array is a value that may appear zero or one times in an
- array to be used as the value for this key. For example, if the
- variant contained the array `['x', 'y']` then the valid values for
- the key would be `[]`, `['x']`, `['y']`, `['x', 'y']` and
- `['y', 'x']`.
- Finally, if the string is `'range'` then the variant contains a pair
- of like-typed values -- the minimum and maximum permissible values
- for this key.
- This information should not be used by normal programs. It is
- considered to be a hint for introspection purposes. Normal programs
- should already know what is permitted by their own schema. The
- format may change in any way in the future -- but particularly, new
- forms may be added to the possibilities described above.
- You should free the returned value with g_variant_unref() when it is
- no longer needed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVariant describing the range</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_summary"
- c:identifier="g_settings_schema_key_get_summary"
- version="2.34">
- <doc xml:space="preserve">Gets the summary for @key.
- If no summary has been provided in the schema for @key, returns
- %NULL.
- The summary is a short description of the purpose of the key; usually
- one short sentence. Summaries can be translated and the value
- returned from this function is is the current locale.
- This function is slow. The summary and description information for
- the schemas is not stored in the compiled schema database so this
- function has to parse all of the source XML files in the schema
- directory.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the summary for @key, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_value_type"
- c:identifier="g_settings_schema_key_get_value_type"
- version="2.40">
- <doc xml:space="preserve">Gets the #GVariantType of @key.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the type of @key</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="range_check"
- c:identifier="g_settings_schema_key_range_check"
- version="2.40">
- <doc xml:space="preserve">Checks if the given @value is of the correct type and within the
- permitted range for @key.
- It is a programmer error if @value is not of the correct type -- you
- must check for this first.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @value is valid for @key</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to check</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref"
- c:identifier="g_settings_schema_key_ref"
- version="2.40">
- <doc xml:space="preserve">Increase the reference count of @key, returning a new reference.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new reference to @key</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_settings_schema_key_unref"
- version="2.40">
- <doc xml:space="preserve">Decrease the reference count of @key, possibly freeing it.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaKey</doc>
- <type name="SettingsSchemaKey" c:type="GSettingsSchemaKey*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="SettingsSchemaSource"
- c:type="GSettingsSchemaSource"
- version="2.32"
- glib:type-name="GSettingsSchemaSource"
- glib:get-type="g_settings_schema_source_get_type"
- c:symbol-prefix="settings_schema_source">
- <doc xml:space="preserve">This is an opaque structure type. You may not access it directly.</doc>
- <constructor name="new_from_directory"
- c:identifier="g_settings_schema_source_new_from_directory"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Attempts to create a new schema source corresponding to the contents
- of the given directory.
- This function is not required for normal uses of #GSettings but it
- may be useful to authors of plugin management systems.
- The directory should contain a file called `gschemas.compiled` as
- produced by the [glib-compile-schemas][glib-compile-schemas] tool.
- If @trusted is %TRUE then `gschemas.compiled` is trusted not to be
- corrupted. This assumption has a performance advantage, but can result
- in crashes or inconsistent behaviour in the case of a corrupted file.
- Generally, you should set @trusted to %TRUE for files installed by the
- system and to %FALSE for files in the home directory.
- If @parent is non-%NULL then there are two effects.
- First, if g_settings_schema_source_lookup() is called with the
- @recursive flag set to %TRUE and the schema can not be found in the
- source, the lookup will recurse to the parent.
- Second, any references to other schemas specified within this
- source (ie: `child` or `extends`) references may be resolved
- from the @parent.
- For this second reason, except in very unusual situations, the
- @parent should probably be given as the default schema source, as
- returned by g_settings_schema_source_get_default().</doc>
- <return-value transfer-ownership="full">
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </return-value>
- <parameters>
- <parameter name="directory" transfer-ownership="none">
- <doc xml:space="preserve">the filename of a directory</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parent"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GSettingsSchemaSource, or %NULL</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </parameter>
- <parameter name="trusted" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, if the directory is trusted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="list_schemas"
- c:identifier="g_settings_schema_source_list_schemas"
- version="2.40">
- <doc xml:space="preserve">Lists the schemas in a given source.
- If @recursive is %TRUE then include parent sources. If %FALSE then
- only include the schemas from one source (ie: one directory). You
- probably want %TRUE.
- Non-relocatable schemas are those for which you can call
- g_settings_new(). Relocatable schemas are those for which you must
- use g_settings_new_with_path().
- Do not call this function from normal programs. This is designed for
- use by database editors, commandline tools, etc.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaSource</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </instance-parameter>
- <parameter name="recursive" transfer-ownership="none">
- <doc xml:space="preserve">if we should recurse</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="non_relocatable"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the
- list of non-relocatable schemas</doc>
- <array c:type="gchar***">
- <type name="utf8" c:type="gchar**"/>
- </array>
- </parameter>
- <parameter name="relocatable"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the list
- of relocatable schemas</doc>
- <array c:type="gchar***">
- <type name="utf8" c:type="gchar**"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="lookup"
- c:identifier="g_settings_schema_source_lookup"
- version="2.32">
- <doc xml:space="preserve">Looks up a schema with the identifier @schema_id in @source.
- This function is not required for normal uses of #GSettings but it
- may be useful to authors of plugin management systems or to those who
- want to introspect the content of schemas.
- If the schema isn't found directly in @source and @recursive is %TRUE
- then the parent sources will also be checked.
- If the schema isn't found, %NULL is returned.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a new #GSettingsSchema</doc>
- <type name="SettingsSchema" c:type="GSettingsSchema*"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaSource</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </instance-parameter>
- <parameter name="schema_id" transfer-ownership="none">
- <doc xml:space="preserve">a schema ID</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="recursive" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the lookup should be recursive</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="ref"
- c:identifier="g_settings_schema_source_ref"
- version="2.32">
- <doc xml:space="preserve">Increase the reference count of @source, returning a new reference.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new reference to @source</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaSource</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref"
- c:identifier="g_settings_schema_source_unref"
- version="2.32">
- <doc xml:space="preserve">Decrease the reference count of @source, possibly freeing it.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GSettingsSchemaSource</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="get_default"
- c:identifier="g_settings_schema_source_get_default"
- version="2.32">
- <doc xml:space="preserve">Gets the default system schema source.
- This function is not required for normal uses of #GSettings but it
- may be useful to authors of plugin management systems or to those who
- want to introspect the content of schemas.
- If no schemas are installed, %NULL will be returned.
- The returned source may actually consist of multiple schema sources
- from different directories, depending on which directories were given
- in `XDG_DATA_DIRS` and `GSETTINGS_SCHEMA_DIR`. For this reason, all
- lookups performed against the default source should probably be done
- recursively.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default schema source</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </return-value>
- </function>
- </record>
- <class name="SimpleAction"
- c:symbol-prefix="simple_action"
- c:type="GSimpleAction"
- parent="GObject.Object"
- glib:type-name="GSimpleAction"
- glib:get-type="g_simple_action_get_type">
- <doc xml:space="preserve">A #GSimpleAction is the obvious simple implementation of the #GAction
- interface. This is the easiest way to create an action for purposes of
- adding it to a #GSimpleActionGroup.
- See also #GtkAction.</doc>
- <implements name="Action"/>
- <constructor name="new"
- c:identifier="g_simple_action_new"
- version="2.28">
- <doc xml:space="preserve">Creates a new action.
- The created action is stateless. See g_simple_action_new_stateful().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSimpleAction</doc>
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the type of parameter to the activate function</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_stateful"
- c:identifier="g_simple_action_new_stateful"
- version="2.28">
- <doc xml:space="preserve">Creates a new stateful action.
- @state is the initial state of the action. All future state values
- must have the same #GVariantType as the initial state.
- If the @state GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSimpleAction</doc>
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="parameter_type"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the type of the parameter to the activate function</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">the initial state of the action</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="set_enabled"
- c:identifier="g_simple_action_set_enabled"
- version="2.28">
- <doc xml:space="preserve">Sets the action as enabled or not.
- An action must be enabled in order to be activated or in order to
- have its state changed from outside callers.
- This should only be called by the implementor of the action. Users
- of the action should not attempt to modify its enabled flag.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAction</doc>
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </instance-parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether the action is enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_state"
- c:identifier="g_simple_action_set_state"
- version="2.30">
- <doc xml:space="preserve">Sets the state of the action.
- This directly updates the 'state' property to the given value.
- This should only be called by the implementor of the action. Users
- of the action should not attempt to directly modify the 'state'
- property. Instead, they should call g_action_change_state() to
- request the change.
- If the @value GVariant is floating, it is consumed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAction</doc>
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new #GVariant for the state</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_state_hint"
- c:identifier="g_simple_action_set_state_hint"
- version="2.44">
- <doc xml:space="preserve">Sets the state hint for the action.
- See g_action_get_state_hint() for more information about
- action state hints.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAction</doc>
- <type name="SimpleAction" c:type="GSimpleAction*"/>
- </instance-parameter>
- <parameter name="state_hint"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant representing the state hint</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </method>
- <property name="enabled"
- version="2.28"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">If @action is currently enabled.
- If the action is disabled then calls to g_action_activate() and
- g_action_change_state() have no effect.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="name"
- version="2.28"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The name of the action. This is mostly meaningful for identifying
- the action once it has been added to a #GSimpleActionGroup.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="parameter-type"
- version="2.28"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The type of the parameter that must be given when activating the
- action.</doc>
- <type name="GLib.VariantType"/>
- </property>
- <property name="state"
- version="2.28"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The state of the action, or %NULL if the action is stateless.</doc>
- <type name="GLib.Variant"/>
- </property>
- <property name="state-type" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">The #GVariantType of the state that the action has, or %NULL if the
- action is stateless.</doc>
- <type name="GLib.VariantType"/>
- </property>
- <glib:signal name="activate" when="last" version="2.28">
- <doc xml:space="preserve">Indicates that the action was just activated.
- @parameter will always be of the expected type. In the event that
- an incorrect type was given, no signal will be emitted.
- Since GLib 2.40, if no handler is connected to this signal then the
- default behaviour for boolean-stated actions with a %NULL parameter
- type is to toggle them via the #GSimpleAction::change-state signal.
- For stateful actions where the state type is equal to the parameter
- type, the default is to forward them directly to
- #GSimpleAction::change-state. This should allow almost all users
- of #GSimpleAction to connect only one handler or the other.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parameter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the parameter to the activation</doc>
- <type name="GLib.Variant"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="change-state" when="last" version="2.30">
- <doc xml:space="preserve">Indicates that the action just received a request to change its
- state.
- @value will always be of the correct state type. In the event that
- an incorrect type was given, no signal will be emitted.
- If no handler is connected to this signal then the default
- behaviour is to call g_simple_action_set_state() to set the state
- to the requested value. If you connect a signal handler then no
- default action is taken. If the state should change then you must
- call g_simple_action_set_state() from the handler.
- An example of a 'change-state' handler:
- |[<!-- language="C" -->
- static void
- change_volume_state (GSimpleAction *action,
- GVariant *value,
- gpointer user_data)
- {
- gint requested;
- requested = g_variant_get_int32 (value);
- // Volume only goes from 0 to 10
- if (0 <= requested && requested <= 10)
- g_simple_action_set_state (action, value);
- }
- ]|
- The handler need not set the state to the requested value.
- It could set it to any value at all, or take some other action.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the requested value for the state</doc>
- <type name="GLib.Variant"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <class name="SimpleActionGroup"
- c:symbol-prefix="simple_action_group"
- c:type="GSimpleActionGroup"
- version="2.28"
- parent="GObject.Object"
- glib:type-name="GSimpleActionGroup"
- glib:get-type="g_simple_action_group_get_type"
- glib:type-struct="SimpleActionGroupClass">
- <doc xml:space="preserve">#GSimpleActionGroup is a hash table filled with #GAction objects,
- implementing the #GActionGroup and #GActionMap interfaces.</doc>
- <implements name="ActionGroup"/>
- <implements name="ActionMap"/>
- <constructor name="new"
- c:identifier="g_simple_action_group_new"
- version="2.28">
- <doc xml:space="preserve">Creates a new, empty, #GSimpleActionGroup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSimpleActionGroup</doc>
- <type name="SimpleActionGroup" c:type="GSimpleActionGroup*"/>
- </return-value>
- </constructor>
- <method name="add_entries"
- c:identifier="g_simple_action_group_add_entries"
- version="2.30"
- deprecated="1"
- deprecated-version="2.38">
- <doc xml:space="preserve">A convenience function for creating multiple #GSimpleAction instances
- and adding them to the action group.</doc>
- <doc-deprecated xml:space="preserve">Use g_action_map_add_action_entries()</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleActionGroup</doc>
- <type name="SimpleActionGroup" c:type="GSimpleActionGroup*"/>
- </instance-parameter>
- <parameter name="entries" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to the first item in
- an array of #GActionEntry structs</doc>
- <array length="1" zero-terminated="0" c:type="GActionEntry*">
- <type name="ActionEntry" c:type="GActionEntry"/>
- </array>
- </parameter>
- <parameter name="n_entries" transfer-ownership="none">
- <doc xml:space="preserve">the length of @entries, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the user data for signal connections</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="insert"
- c:identifier="g_simple_action_group_insert"
- version="2.28"
- deprecated="1"
- deprecated-version="2.38">
- <doc xml:space="preserve">Adds an action to the action group.
- If the action group already contains an action with the same name as
- @action then the old action is dropped from the group.
- The action group takes its own reference on @action.</doc>
- <doc-deprecated xml:space="preserve">Use g_action_map_add_action()</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleActionGroup</doc>
- <type name="SimpleActionGroup" c:type="GSimpleActionGroup*"/>
- </instance-parameter>
- <parameter name="action" transfer-ownership="none">
- <doc xml:space="preserve">a #GAction</doc>
- <type name="Action" c:type="GAction*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup"
- c:identifier="g_simple_action_group_lookup"
- version="2.28"
- deprecated="1"
- deprecated-version="2.38">
- <doc xml:space="preserve">Looks up the action with the name @action_name in the group.
- If no such action exists, returns %NULL.</doc>
- <doc-deprecated xml:space="preserve">Use g_action_map_lookup_action()</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GAction, or %NULL</doc>
- <type name="Action" c:type="GAction*"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleActionGroup</doc>
- <type name="SimpleActionGroup" c:type="GSimpleActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of an action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove"
- c:identifier="g_simple_action_group_remove"
- version="2.28"
- deprecated="1"
- deprecated-version="2.38">
- <doc xml:space="preserve">Removes the named action from the action group.
- If no action of this name is in the group then nothing happens.</doc>
- <doc-deprecated xml:space="preserve">Use g_action_map_remove_action()</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleActionGroup</doc>
- <type name="SimpleActionGroup" c:type="GSimpleActionGroup*"/>
- </instance-parameter>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the action</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="SimpleActionGroupPrivate"
- c:type="GSimpleActionGroupPrivate*"/>
- </field>
- </class>
- <record name="SimpleActionGroupClass"
- c:type="GSimpleActionGroupClass"
- glib:is-gtype-struct-for="SimpleActionGroup">
- <field name="parent_class" readable="0" private="1">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="12">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="SimpleActionGroupPrivate"
- c:type="GSimpleActionGroupPrivate"
- disguised="1">
- </record>
- <class name="SimpleAsyncResult"
- c:symbol-prefix="simple_async_result"
- c:type="GSimpleAsyncResult"
- parent="GObject.Object"
- glib:type-name="GSimpleAsyncResult"
- glib:get-type="g_simple_async_result_get_type"
- glib:type-struct="SimpleAsyncResultClass">
- <doc xml:space="preserve">As of GLib 2.46, #GSimpleAsyncResult is deprecated in favor of
- #GTask, which provides a simpler API.
- #GSimpleAsyncResult implements #GAsyncResult.
- GSimpleAsyncResult handles #GAsyncReadyCallbacks, error
- reporting, operation cancellation and the final state of an operation,
- completely transparent to the application. Results can be returned
- as a pointer e.g. for functions that return data that is collected
- asynchronously, a boolean value for checking the success or failure
- of an operation, or a #gssize for operations which return the number
- of bytes modified by the operation; all of the simple return cases
- are covered.
- Most of the time, an application will not need to know of the details
- of this API; it is handled transparently, and any necessary operations
- are handled by #GAsyncResult's interface. However, if implementing a
- new GIO module, for writing language bindings, or for complex
- applications that need better control of how asynchronous operations
- are completed, it is important to understand this functionality.
- GSimpleAsyncResults are tagged with the calling function to ensure
- that asynchronous functions and their finishing functions are used
- together correctly.
- To create a new #GSimpleAsyncResult, call g_simple_async_result_new().
- If the result needs to be created for a #GError, use
- g_simple_async_result_new_from_error() or
- g_simple_async_result_new_take_error(). If a #GError is not available
- (e.g. the asynchronous operation's doesn't take a #GError argument),
- but the result still needs to be created for an error condition, use
- g_simple_async_result_new_error() (or g_simple_async_result_set_error_va()
- if your application or binding requires passing a variable argument list
- directly), and the error can then be propagated through the use of
- g_simple_async_result_propagate_error().
- An asynchronous operation can be made to ignore a cancellation event by
- calling g_simple_async_result_set_handle_cancellation() with a
- #GSimpleAsyncResult for the operation and %FALSE. This is useful for
- operations that are dangerous to cancel, such as close (which would
- cause a leak if cancelled before being run).
- GSimpleAsyncResult can integrate into GLib's event loop, #GMainLoop,
- or it can use #GThreads.
- g_simple_async_result_complete() will finish an I/O task directly
- from the point where it is called. g_simple_async_result_complete_in_idle()
- will finish it from an idle handler in the
- [thread-default main context][g-main-context-push-thread-default]
- . g_simple_async_result_run_in_thread() will run the
- job in a separate thread and then deliver the result to the
- thread-default main context.
- To set the results of an asynchronous function,
- g_simple_async_result_set_op_res_gpointer(),
- g_simple_async_result_set_op_res_gboolean(), and
- g_simple_async_result_set_op_res_gssize()
- are provided, setting the operation's result to a gpointer, gboolean, or
- gssize, respectively.
- Likewise, to get the result of an asynchronous function,
- g_simple_async_result_get_op_res_gpointer(),
- g_simple_async_result_get_op_res_gboolean(), and
- g_simple_async_result_get_op_res_gssize() are
- provided, getting the operation's result as a gpointer, gboolean, and
- gssize, respectively.
- For the details of the requirements implementations must respect, see
- #GAsyncResult. A typical implementation of an asynchronous operation
- using GSimpleAsyncResult looks something like this:
- |[<!-- language="C" -->
- static void
- baked_cb (Cake *cake,
- gpointer user_data)
- {
- // In this example, this callback is not given a reference to the cake,
- // so the GSimpleAsyncResult has to take a reference to it.
- GSimpleAsyncResult *result = user_data;
- if (cake == NULL)
- g_simple_async_result_set_error (result,
- BAKER_ERRORS,
- BAKER_ERROR_NO_FLOUR,
- "Go to the supermarket");
- else
- g_simple_async_result_set_op_res_gpointer (result,
- g_object_ref (cake),
- g_object_unref);
- // In this example, we assume that baked_cb is called as a callback from
- // the mainloop, so it's safe to complete the operation synchronously here.
- // If, however, _baker_prepare_cake () might call its callback without
- // first returning to the mainloop — inadvisable, but some APIs do so —
- // we would need to use g_simple_async_result_complete_in_idle().
- g_simple_async_result_complete (result);
- g_object_unref (result);
- }
- void
- baker_bake_cake_async (Baker *self,
- guint radius,
- GAsyncReadyCallback callback,
- gpointer user_data)
- {
- GSimpleAsyncResult *simple;
- Cake *cake;
- if (radius < 3)
- {
- g_simple_async_report_error_in_idle (G_OBJECT (self),
- callback,
- user_data,
- BAKER_ERRORS,
- BAKER_ERROR_TOO_SMALL,
- "%ucm radius cakes are silly",
- radius);
- return;
- }
- simple = g_simple_async_result_new (G_OBJECT (self),
- callback,
- user_data,
- baker_bake_cake_async);
- cake = _baker_get_cached_cake (self, radius);
- if (cake != NULL)
- {
- g_simple_async_result_set_op_res_gpointer (simple,
- g_object_ref (cake),
- g_object_unref);
- g_simple_async_result_complete_in_idle (simple);
- g_object_unref (simple);
- // Drop the reference returned by _baker_get_cached_cake();
- // the GSimpleAsyncResult has taken its own reference.
- g_object_unref (cake);
- return;
- }
- _baker_prepare_cake (self, radius, baked_cb, simple);
- }
- Cake *
- baker_bake_cake_finish (Baker *self,
- GAsyncResult *result,
- GError **error)
- {
- GSimpleAsyncResult *simple;
- Cake *cake;
- g_return_val_if_fail (g_simple_async_result_is_valid (result,
- G_OBJECT (self),
- baker_bake_cake_async),
- NULL);
- simple = (GSimpleAsyncResult *) result;
- if (g_simple_async_result_propagate_error (simple, error))
- return NULL;
- cake = CAKE (g_simple_async_result_get_op_res_gpointer (simple));
- return g_object_ref (cake);
- }
- ]|</doc>
- <implements name="AsyncResult"/>
- <constructor name="new"
- c:identifier="g_simple_async_result_new"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Creates a #GSimpleAsyncResult.
- The common convention is to create the #GSimpleAsyncResult in the
- function that starts the asynchronous operation and use that same
- function as the @source_tag.
- If your operation supports cancellation with #GCancellable (which it
- probably should) then you should provide the user's cancellable to
- g_simple_async_result_set_check_cancellable() immediately after
- this function returns.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_new() instead.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the asynchronous function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_error"
- c:identifier="g_simple_async_result_new_error"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Creates a new #GSimpleAsyncResult with a set error.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_new() and g_task_return_new_error() instead.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">an error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a string with format characters.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">a list of values to insert into @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_error"
- c:identifier="g_simple_async_result_new_from_error"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Creates a #GSimpleAsyncResult from an error condition.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_new() and g_task_return_error() instead.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">a #GError</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_take_error"
- c:identifier="g_simple_async_result_new_take_error"
- version="2.28"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Creates a #GSimpleAsyncResult from an error condition, and takes over the
- caller's ownership of @error, so the caller does not need to free it anymore.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_new() and g_task_return_error() instead.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSimpleAsyncResult</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">a #GError</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="is_valid"
- c:identifier="g_simple_async_result_is_valid"
- version="2.20"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Ensures that the data passed to the _finish function of an async
- operation is consistent. Three checks are performed.
- First, @result is checked to ensure that it is really a
- #GSimpleAsyncResult. Second, @source is checked to ensure that it
- matches the source object of @result. Third, @source_tag is
- checked to ensure that it is equal to the @source_tag argument given
- to g_simple_async_result_new() (which, by convention, is a pointer
- to the _async function corresponding to the _finish function from
- which this function is called). (Alternatively, if either
- @source_tag or @result's source tag is %NULL, then the source tag
- check is skipped.)</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_is_valid() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if all checks passed or #FALSE if any failed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult passed to the _finish function.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="source"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GObject passed to the _finish function.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the asynchronous function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <method name="complete"
- c:identifier="g_simple_async_result_complete"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Completes an asynchronous I/O job immediately. Must be called in
- the thread where the asynchronous result was to be delivered, as it
- invokes the callback directly. If you are in a different thread use
- g_simple_async_result_complete_in_idle().
- Calling this function takes a reference to @simple for as long as
- is needed to complete the call.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="complete_in_idle"
- c:identifier="g_simple_async_result_complete_in_idle"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Completes an asynchronous function in an idle handler in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread that @simple was initially created in
- (and re-pushes that context around the invocation of the callback).
- Calling this function takes a reference to @simple for as long as
- is needed to complete the call.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_op_res_gboolean"
- c:identifier="g_simple_async_result_get_op_res_gboolean"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Gets the operation result boolean from within the asynchronous result.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_propagate_boolean() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation's result was %TRUE, %FALSE
- if the operation's result was %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_op_res_gpointer"
- c:identifier="g_simple_async_result_get_op_res_gpointer"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Gets a pointer result as returned by the asynchronous function.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_propagate_pointer() instead.</doc-deprecated>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a pointer from the result.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_op_res_gssize"
- c:identifier="g_simple_async_result_get_op_res_gssize"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Gets a gssize from the asynchronous result.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_propagate_int() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a gssize returned from the asynchronous function.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_source_tag"
- c:identifier="g_simple_async_result_get_source_tag"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46.">
- <doc xml:space="preserve">Gets the source tag for the #GSimpleAsyncResult.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_get_source_tag() instead.</doc-deprecated>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">a #gpointer to the source object for the #GSimpleAsyncResult.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="propagate_error"
- c:identifier="g_simple_async_result_propagate_error"
- deprecated="1"
- deprecated-version="2.46"
- throws="1">
- <doc xml:space="preserve">Propagates an error from within the simple asynchronous result to
- a given destination.
- If the #GCancellable given to a prior call to
- g_simple_async_result_set_check_cancellable() is cancelled then this
- function will return %TRUE with @dest set appropriately.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the error was propagated to @dest. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="run_in_thread"
- c:identifier="g_simple_async_result_run_in_thread"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Runs the asynchronous job in a separate thread and then calls
- g_simple_async_result_complete_in_idle() on @simple to return
- the result to the appropriate main loop.
- Calling this function takes a reference to @simple for as long as
- is needed to run the job and report its completion.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_run_in_thread() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="func" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncThreadFunc.</doc>
- <type name="SimpleAsyncThreadFunc"
- c:type="GSimpleAsyncThreadFunc"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the io priority of the request.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_check_cancellable"
- c:identifier="g_simple_async_result_set_check_cancellable"
- version="2.32"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets a #GCancellable to check before dispatching results.
- This function has one very specific purpose: the provided cancellable
- is checked at the time of g_simple_async_result_propagate_error() If
- it is cancelled, these functions will return an "Operation was
- cancelled" error (%G_IO_ERROR_CANCELLED).
- Implementors of cancellable asynchronous functions should use this in
- order to provide a guarantee to their callers that cancelling an
- async operation will reliably result in an error being returned for
- that operation (even if a positive result for the operation has
- already been sent as an idle to the main context to be dispatched).
- The checking described above is done regardless of any call to the
- unrelated g_simple_async_result_set_handle_cancellation() function.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="check_cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable to check, or %NULL to unset</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_error"
- c:identifier="g_simple_async_result_set_error"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets an error within the asynchronous result without a #GError.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_new_error() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark (usually #G_IO_ERROR).</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">an error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a formatted error reporting string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">a list of variables to fill in @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_error_va"
- c:identifier="g_simple_async_result_set_error_va"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets an error within the asynchronous result without a #GError.
- Unless writing a binding, see g_simple_async_result_set_error().</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_error() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark (usually #G_IO_ERROR).</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">an error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a formatted error reporting string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="args" transfer-ownership="none">
- <doc xml:space="preserve">va_list of arguments.</doc>
- <type name="va_list" c:type="va_list"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_from_error"
- c:identifier="g_simple_async_result_set_from_error"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets the result from a #GError.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_error() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">#GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_handle_cancellation"
- c:identifier="g_simple_async_result_set_handle_cancellation"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets whether to handle cancellation within the asynchronous operation.
- This function has nothing to do with
- g_simple_async_result_set_check_cancellable(). It only refers to the
- #GCancellable passed to g_simple_async_result_run_in_thread().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="handle_cancellation" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_op_res_gboolean"
- c:identifier="g_simple_async_result_set_op_res_gboolean"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets the operation result to a boolean within the asynchronous result.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_boolean() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="op_res" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_op_res_gpointer"
- c:identifier="g_simple_async_result_set_op_res_gpointer"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets the operation result within the asynchronous result to a pointer.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_pointer() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="op_res"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer result from an asynchronous function.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_op_res"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify function.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_op_res_gssize"
- c:identifier="g_simple_async_result_set_op_res_gssize"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets the operation result within the asynchronous result to
- the given @op_res.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_int() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="op_res" transfer-ownership="none">
- <doc xml:space="preserve">a #gssize.</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="take_error"
- c:identifier="g_simple_async_result_take_error"
- version="2.28"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Sets the result from @error, and takes over the caller's ownership
- of @error, so the caller does not need to free it any more.</doc>
- <doc-deprecated xml:space="preserve">Use #GTask and g_task_return_error() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="simple" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">a #GError</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="SimpleAsyncResultClass"
- c:type="GSimpleAsyncResultClass"
- disguised="1"
- glib:is-gtype-struct-for="SimpleAsyncResult">
- </record>
- <callback name="SimpleAsyncThreadFunc" c:type="GSimpleAsyncThreadFunc">
- <doc xml:space="preserve">Simple thread function that runs an asynchronous operation and
- checks for cancellation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleAsyncResult.</doc>
- <type name="SimpleAsyncResult" c:type="GSimpleAsyncResult*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <doc xml:space="preserve">a #GObject.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="SimpleIOStream"
- c:symbol-prefix="simple_io_stream"
- c:type="GSimpleIOStream"
- version="2.44"
- parent="IOStream"
- glib:type-name="GSimpleIOStream"
- glib:get-type="g_simple_io_stream_get_type">
- <doc xml:space="preserve">GSimpleIOStream creates a #GIOStream from an arbitrary #GInputStream and
- #GOutputStream. This allows any pair of input and output streams to be used
- with #GIOStream methods.
- This is useful when you obtained a #GInputStream and a #GOutputStream
- by other means, for instance creating them with platform specific methods as
- g_unix_input_stream_new() or g_win32_input_stream_new(), and you want
- to take advantage of the methods provided by #GIOStream.</doc>
- <constructor name="new"
- c:identifier="g_simple_io_stream_new"
- version="2.44">
- <doc xml:space="preserve">Creates a new #GSimpleIOStream wrapping @input_stream and @output_stream.
- See also #GIOStream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSimpleIOStream instance.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="input_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream.</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="output_stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- </parameters>
- </constructor>
- <property name="input-stream"
- version="2.44"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="InputStream"/>
- </property>
- <property name="output-stream"
- version="2.44"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="OutputStream"/>
- </property>
- </class>
- <class name="SimplePermission"
- c:symbol-prefix="simple_permission"
- c:type="GSimplePermission"
- parent="Permission"
- glib:type-name="GSimplePermission"
- glib:get-type="g_simple_permission_get_type">
- <doc xml:space="preserve">#GSimplePermission is a trivial implementation of #GPermission that
- represents a permission that is either always or never allowed. The
- value is given at construction and doesn't change.
- Calling request or release will result in errors.</doc>
- <constructor name="new"
- c:identifier="g_simple_permission_new"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GPermission instance that represents an action that is
- either always or never allowed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GSimplePermission, as a #GPermission</doc>
- <type name="Permission" c:type="GPermission*"/>
- </return-value>
- <parameters>
- <parameter name="allowed" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the action is allowed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- </class>
- <class name="SimpleProxyResolver"
- c:symbol-prefix="simple_proxy_resolver"
- c:type="GSimpleProxyResolver"
- parent="GObject.Object"
- glib:type-name="GSimpleProxyResolver"
- glib:get-type="g_simple_proxy_resolver_get_type"
- glib:type-struct="SimpleProxyResolverClass">
- <doc xml:space="preserve">#GSimpleProxyResolver is a simple #GProxyResolver implementation
- that handles a single default proxy, multiple URI-scheme-specific
- proxies, and a list of hosts that proxies should not be used for.
- #GSimpleProxyResolver is never the default proxy resolver, but it
- can be used as the base class for another proxy resolver
- implementation, or it can be created and used manually, such as
- with g_socket_client_set_proxy_resolver().</doc>
- <implements name="ProxyResolver"/>
- <function name="new"
- c:identifier="g_simple_proxy_resolver_new"
- version="2.36">
- <doc xml:space="preserve">Creates a new #GSimpleProxyResolver. See
- #GSimpleProxyResolver:default-proxy and
- #GSimpleProxyResolver:ignore-hosts for more details on how the
- arguments are interpreted.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSimpleProxyResolver</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </return-value>
- <parameters>
- <parameter name="default_proxy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the default proxy to use, eg
- "socks://192.168.1.1"</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="ignore_hosts"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional list of hosts/IP addresses
- to not use a proxy for.</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </function>
- <method name="set_default_proxy"
- c:identifier="g_simple_proxy_resolver_set_default_proxy"
- version="2.36">
- <doc xml:space="preserve">Sets the default proxy on @resolver, to be used for any URIs that
- don't match #GSimpleProxyResolver:ignore-hosts or a proxy set
- via g_simple_proxy_resolver_set_uri_proxy().
- If @default_proxy starts with "socks://",
- #GSimpleProxyResolver will treat it as referring to all three of
- the socks5, socks4a, and socks4 proxy types.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleProxyResolver</doc>
- <type name="SimpleProxyResolver" c:type="GSimpleProxyResolver*"/>
- </instance-parameter>
- <parameter name="default_proxy" transfer-ownership="none">
- <doc xml:space="preserve">the default proxy to use</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_ignore_hosts"
- c:identifier="g_simple_proxy_resolver_set_ignore_hosts"
- version="2.36">
- <doc xml:space="preserve">Sets the list of ignored hosts.
- See #GSimpleProxyResolver:ignore-hosts for more details on how the
- @ignore_hosts argument is interpreted.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleProxyResolver</doc>
- <type name="SimpleProxyResolver" c:type="GSimpleProxyResolver*"/>
- </instance-parameter>
- <parameter name="ignore_hosts" transfer-ownership="none">
- <doc xml:space="preserve">%NULL-terminated list of hosts/IP addresses
- to not use a proxy for</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_uri_proxy"
- c:identifier="g_simple_proxy_resolver_set_uri_proxy"
- version="2.36">
- <doc xml:space="preserve">Adds a URI-scheme-specific proxy to @resolver; URIs whose scheme
- matches @uri_scheme (and which don't match
- #GSimpleProxyResolver:ignore-hosts) will be proxied via @proxy.
- As with #GSimpleProxyResolver:default-proxy, if @proxy starts with
- "socks://", #GSimpleProxyResolver will treat it
- as referring to all three of the socks5, socks4a, and socks4 proxy
- types.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resolver" transfer-ownership="none">
- <doc xml:space="preserve">a #GSimpleProxyResolver</doc>
- <type name="SimpleProxyResolver" c:type="GSimpleProxyResolver*"/>
- </instance-parameter>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">the URI scheme to add a proxy for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="proxy" transfer-ownership="none">
- <doc xml:space="preserve">the proxy to use for @uri_scheme</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="default-proxy" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">The default proxy URI that will be used for any URI that doesn't
- match #GSimpleProxyResolver:ignore-hosts, and doesn't match any
- of the schemes set with g_simple_proxy_resolver_set_uri_proxy().
- Note that as a special case, if this URI starts with
- "socks://", #GSimpleProxyResolver will treat it as referring
- to all three of the socks5, socks4a, and socks4 proxy types.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="ignore-hosts" writable="1" transfer-ownership="none">
- <doc xml:space="preserve">A list of hostnames and IP addresses that the resolver should
- allow direct connections to.
- Entries can be in one of 4 formats:
- - A hostname, such as "example.com", ".example.com", or
- "*.example.com", any of which match "example.com" or
- any subdomain of it.
- - An IPv4 or IPv6 address, such as "192.168.1.1",
- which matches only that address.
- - A hostname or IP address followed by a port, such as
- "example.com:80", which matches whatever the hostname or IP
- address would match, but only for URLs with the (explicitly)
- indicated port. In the case of an IPv6 address, the address
- part must appear in brackets: "[::1]:443"
- - An IP address range, given by a base address and prefix length,
- such as "fe80::/10", which matches any address in that range.
- Note that when dealing with Unicode hostnames, the matching is
- done against the ASCII form of the name.
- Also note that hostname exclusions apply only to connections made
- to hosts identified by name, and IP address exclusions apply only
- to connections made to hosts identified by address. That is, if
- example.com has an address of 192.168.1.1, and the :ignore-hosts list
- contains only "192.168.1.1", then a connection to "example.com"
- (eg, via a #GNetworkAddress) will use the proxy, and a connection to
- "192.168.1.1" (eg, via a #GInetSocketAddress) will not.
- These rules match the "ignore-hosts"/"noproxy" rules most
- commonly used by other applications.</doc>
- <array>
- <type name="utf8"/>
- </array>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="SimpleProxyResolverPrivate"
- c:type="GSimpleProxyResolverPrivate*"/>
- </field>
- </class>
- <record name="SimpleProxyResolverClass"
- c:type="GSimpleProxyResolverClass"
- glib:is-gtype-struct-for="SimpleProxyResolver">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="SimpleProxyResolverPrivate"
- c:type="GSimpleProxyResolverPrivate"
- disguised="1">
- </record>
- <class name="Socket"
- c:symbol-prefix="socket"
- c:type="GSocket"
- version="2.22"
- parent="GObject.Object"
- glib:type-name="GSocket"
- glib:get-type="g_socket_get_type"
- glib:type-struct="SocketClass">
- <doc xml:space="preserve">A #GSocket is a low-level networking primitive. It is a more or less
- direct mapping of the BSD socket API in a portable GObject based API.
- It supports both the UNIX socket implementations and winsock2 on Windows.
- #GSocket is the platform independent base upon which the higher level
- network primitives are based. Applications are not typically meant to
- use it directly, but rather through classes like #GSocketClient,
- #GSocketService and #GSocketConnection. However there may be cases where
- direct use of #GSocket is useful.
- #GSocket implements the #GInitable interface, so if it is manually constructed
- by e.g. g_object_new() you must call g_initable_init() and check the
- results before using the object. This is done automatically in
- g_socket_new() and g_socket_new_from_fd(), so these functions can return
- %NULL.
- Sockets operate in two general modes, blocking or non-blocking. When
- in blocking mode all operations (which don’t take an explicit blocking
- parameter) block until the requested operation
- is finished or there is an error. In non-blocking mode all calls that
- would block return immediately with a %G_IO_ERROR_WOULD_BLOCK error.
- To know when a call would successfully run you can call g_socket_condition_check(),
- or g_socket_condition_wait(). You can also use g_socket_create_source() and
- attach it to a #GMainContext to get callbacks when I/O is possible.
- Note that all sockets are always set to non blocking mode in the system, and
- blocking mode is emulated in GSocket.
- When working in non-blocking mode applications should always be able to
- handle getting a %G_IO_ERROR_WOULD_BLOCK error even when some other
- function said that I/O was possible. This can easily happen in case
- of a race condition in the application, but it can also happen for other
- reasons. For instance, on Windows a socket is always seen as writable
- until a write returns %G_IO_ERROR_WOULD_BLOCK.
- #GSockets can be either connection oriented or datagram based.
- For connection oriented types you must first establish a connection by
- either connecting to an address or accepting a connection from another
- address. For connectionless socket types the target/source address is
- specified or received in each I/O operation.
- All socket file descriptors are set to be close-on-exec.
- Note that creating a #GSocket causes the signal %SIGPIPE to be
- ignored for the remainder of the program. If you are writing a
- command-line utility that uses #GSocket, you may need to take into
- account the fact that your program will not automatically be killed
- if it tries to write to %stdout after it has been closed.
- Like most other APIs in GLib, #GSocket is not inherently thread safe. To use
- a #GSocket concurrently from multiple threads, you must implement your own
- locking.</doc>
- <implements name="DatagramBased"/>
- <implements name="Initable"/>
- <constructor name="new"
- c:identifier="g_socket_new"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Creates a new #GSocket with the defined family, type and protocol.
- If @protocol is 0 (%G_SOCKET_PROTOCOL_DEFAULT) the default protocol type
- for the family and type is used.
- The @protocol is a family and type specific int that specifies what
- kind of protocol to use. #GSocketProtocol lists several common ones.
- Many families only support one protocol, and use 0 for this, others
- support several and using 0 means to use the default protocol for
- the family and type.
- The protocol id is passed directly to the operating
- system, so you can use protocols not listed in #GSocketProtocol if you
- know the protocol number used for it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocket or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Socket" c:type="GSocket*"/>
- </return-value>
- <parameters>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">the socket family to use, e.g. %G_SOCKET_FAMILY_IPV4.</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the socket type to use.</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">the id of the protocol to use, or 0 for default.</doc>
- <type name="SocketProtocol" c:type="GSocketProtocol"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_fd"
- c:identifier="g_socket_new_from_fd"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Creates a new #GSocket from a native file descriptor
- or winsock SOCKET handle.
- This reads all the settings from the file descriptor so that
- all properties should work. Note that the file descriptor
- will be set to non-blocking mode, independent on the blocking
- mode of the #GSocket.
- On success, the returned #GSocket takes ownership of @fd. On failure, the
- caller must close @fd themselves.
- Since GLib 2.46, it is no longer a fatal error to call this on a non-socket
- descriptor. Instead, a GError will be set with code %G_IO_ERROR_FAILED</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocket or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Socket" c:type="GSocket*"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a native socket file descriptor.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="accept"
- c:identifier="g_socket_accept"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Accept incoming connections on a connection-based socket. This removes
- the first outstanding connection request from the listening socket and
- creates a #GSocket object for it.
- The @socket must be bound to a local address with g_socket_bind() and
- must be listening for incoming connections (g_socket_listen()).
- If there are no outstanding connections then the operation will block
- or return %G_IO_ERROR_WOULD_BLOCK if non-blocking I/O is enabled.
- To be notified of an incoming connection, wait for the %G_IO_IN condition.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocket, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Socket" c:type="GSocket*"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="bind"
- c:identifier="g_socket_bind"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">When a socket is created it is attached to an address family, but it
- doesn't have an address in this family. g_socket_bind() assigns the
- address (sometimes called name) of the socket.
- It is generally required to bind to a local address before you can
- receive connections. (See g_socket_listen() and g_socket_accept() ).
- In certain situations, you may also want to bind a socket that will be
- used to initiate connections, though this is not normally required.
- If @socket is a TCP socket, then @allow_reuse controls the setting
- of the `SO_REUSEADDR` socket option; normally it should be %TRUE for
- server sockets (sockets that you will eventually call
- g_socket_accept() on), and %FALSE for client sockets. (Failing to
- set this flag on a server socket may cause g_socket_bind() to return
- %G_IO_ERROR_ADDRESS_IN_USE if the server program is stopped and then
- immediately restarted.)
- If @socket is a UDP socket, then @allow_reuse determines whether or
- not other UDP sockets can be bound to the same address at the same
- time. In particular, you can have several UDP sockets bound to the
- same address, and they will all receive all of the multicast and
- broadcast packets sent to that address. (The behavior of unicast
- UDP packets to an address with multiple listeners is not defined.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress specifying the local address.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="allow_reuse" transfer-ownership="none">
- <doc xml:space="preserve">whether to allow reusing this address</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="check_connect_result"
- c:identifier="g_socket_check_connect_result"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Checks and resets the pending connect error for the socket.
- This is used to check for errors when g_socket_connect() is
- used in non-blocking mode.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if no error, %FALSE otherwise, setting @error to the error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="close"
- c:identifier="g_socket_close"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Closes the socket, shutting down any active connection.
- Closing a socket does not wait for all outstanding I/O operations
- to finish, so the caller should not rely on them to be guaranteed
- to complete even if the close returns with no error.
- Once the socket is closed, all other operations will return
- %G_IO_ERROR_CLOSED. Closing a socket multiple times will not
- return an error.
- Sockets will be automatically closed when the last reference
- is dropped, but you might want to call this function to make sure
- resources are released as early as possible.
- Beware that due to the way that TCP works, it is possible for
- recently-sent data to be lost if either you close a socket while the
- %G_IO_IN condition is set, or else if the remote connection tries to
- send something to you after you close the socket but before it has
- finished reading all of the data you sent. There is no easy generic
- way to avoid this problem; the easiest fix is to design the network
- protocol such that the client will never send data "out of turn".
- Another solution is for the server to half-close the connection by
- calling g_socket_shutdown() with only the @shutdown_write flag set,
- and then wait for the client to notice this and close its side of the
- connection, after which the server can safely call g_socket_close().
- (This is what #GTcpConnection does if you call
- g_tcp_connection_set_graceful_disconnect(). But of course, this
- only works if the client will close its connection after the server
- does.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="condition_check"
- c:identifier="g_socket_condition_check"
- version="2.22">
- <doc xml:space="preserve">Checks on the readiness of @socket to perform operations.
- The operations specified in @condition are checked for and masked
- against the currently-satisfied conditions on @socket. The result
- is returned.
- Note that on Windows, it is possible for an operation to return
- %G_IO_ERROR_WOULD_BLOCK even immediately after
- g_socket_condition_check() has claimed that the socket is ready for
- writing. Rather than calling g_socket_condition_check() and then
- writing to the socket if it succeeds, it is generally better to
- simply try writing to the socket right away, and try again later if
- the initial attempt returns %G_IO_ERROR_WOULD_BLOCK.
- It is meaningless to specify %G_IO_ERR or %G_IO_HUP in condition;
- these conditions will always be set in the output if they are true.
- This call never blocks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @GIOCondition mask of the current state</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to check</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- </parameters>
- </method>
- <method name="condition_timed_wait"
- c:identifier="g_socket_condition_timed_wait"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Waits for up to @timeout microseconds for @condition to become true
- on @socket. If the condition is met, %TRUE is returned.
- If @cancellable is cancelled before the condition is met, or if
- @timeout (or the socket's #GSocket:timeout) is reached before the
- condition is met, then %FALSE is returned and @error, if non-%NULL,
- is set to the appropriate value (%G_IO_ERROR_CANCELLED or
- %G_IO_ERROR_TIMED_OUT).
- If you don't want a timeout, use g_socket_condition_wait().
- (Alternatively, you can pass -1 for @timeout.)
- Note that although @timeout is in microseconds for consistency with
- other GLib APIs, this function actually only has millisecond
- resolution, and the behavior is undefined if @timeout is not an
- exact number of milliseconds.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the condition was met, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to wait for</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum time (in microseconds) to wait, or -1</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="condition_wait"
- c:identifier="g_socket_condition_wait"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Waits for @condition to become true on @socket. When the condition
- is met, %TRUE is returned.
- If @cancellable is cancelled before the condition is met, or if the
- socket has a timeout set and it is reached before the condition is
- met, then %FALSE is returned and @error, if non-%NULL, is set to
- the appropriate value (%G_IO_ERROR_CANCELLED or
- %G_IO_ERROR_TIMED_OUT).
- See also g_socket_condition_timed_wait().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the condition was met, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to wait for</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect"
- c:identifier="g_socket_connect"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Connect the socket to the specified remote address.
- For connection oriented socket this generally means we attempt to make
- a connection to the @address. For a connection-less socket it sets
- the default address for g_socket_send() and discards all incoming datagrams
- from other sources.
- Generally connection oriented sockets can only connect once, but
- connection-less sockets can connect multiple times to change the
- default address.
- If the connect call needs to do network I/O it will block, unless
- non-blocking I/O is enabled. Then %G_IO_ERROR_PENDING is returned
- and the user can be notified of the connection finishing by waiting
- for the G_IO_OUT condition. The result of the connection must then be
- checked with g_socket_check_connect_result().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if connected, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress specifying the remote address.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connection_factory_create_connection"
- c:identifier="g_socket_connection_factory_create_connection"
- version="2.22">
- <doc xml:space="preserve">Creates a #GSocketConnection subclass of the right type for
- @socket.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="create_source"
- c:identifier="g_socket_create_source"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Creates a #GSource that can be attached to a %GMainContext to monitor
- for the availability of the specified @condition on the socket. The #GSource
- keeps a reference to the @socket.
- The callback on the source is of the #GSocketSourceFunc type.
- It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition;
- these conditions will always be reported output if they are true.
- @cancellable if not %NULL can be used to cancel the source, which will
- cause the source to trigger, reporting the current condition (which
- is likely 0 unless cancellation happened at the same time as a
- condition change). You can check for this in the callback using
- g_cancellable_is_cancelled().
- If @socket has a timeout set, and it is reached before @condition
- occurs, the source will then trigger anyway, reporting %G_IO_IN or
- %G_IO_OUT depending on @condition. However, @socket will have been
- marked as having had a timeout, and so the next #GSocket I/O method
- you call will then fail with a %G_IO_ERROR_TIMED_OUT.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated %GSource, free with g_source_unref().</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">a #GIOCondition mask to monitor</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_available_bytes"
- c:identifier="g_socket_get_available_bytes"
- version="2.32">
- <doc xml:space="preserve">Get the amount of data pending in the OS input buffer, without blocking.
- If @socket is a UDP or SCTP socket, this will return the size of
- just the next packet, even if additional packets are buffered after
- that one.
- Note that on Windows, this function is rather inefficient in the
- UDP case, and so if you know any plausible upper bound on the size
- of the incoming packet, it is better to just do a
- g_socket_receive() with a buffer of that size, rather than calling
- g_socket_get_available_bytes() first and then doing a receive of
- exactly the right size.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes that can be read from the socket
- without blocking or truncating, or -1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_blocking"
- c:identifier="g_socket_get_blocking"
- version="2.22">
- <doc xml:space="preserve">Gets the blocking mode of the socket. For details on blocking I/O,
- see g_socket_set_blocking().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if blocking I/O is used, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_broadcast"
- c:identifier="g_socket_get_broadcast"
- version="2.32">
- <doc xml:space="preserve">Gets the broadcast setting on @socket; if %TRUE,
- it is possible to send packets to broadcast
- addresses.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the broadcast setting on @socket</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_credentials"
- c:identifier="g_socket_get_credentials"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Returns the credentials of the foreign process connected to this
- socket, if any (e.g. it is only supported for %G_SOCKET_FAMILY_UNIX
- sockets).
- If this operation isn't supported on the OS, the method fails with
- the %G_IO_ERROR_NOT_SUPPORTED error. On Linux this is implemented
- by reading the %SO_PEERCRED option on the underlying socket.
- Other ways to obtain credentials from a foreign peer includes the
- #GUnixCredentialsMessage type and
- g_unix_connection_send_credentials() /
- g_unix_connection_receive_credentials() functions.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">%NULL if @error is set, otherwise a #GCredentials object
- that must be freed with g_object_unref().</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_family"
- c:identifier="g_socket_get_family"
- version="2.22">
- <doc xml:space="preserve">Gets the socket family of the socket.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketFamily</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_fd" c:identifier="g_socket_get_fd" version="2.22">
- <doc xml:space="preserve">Returns the underlying OS socket object. On unix this
- is a socket file descriptor, and on Windows this is
- a Winsock2 SOCKET handle. This may be useful for
- doing platform specific or otherwise unusual operations
- on the socket.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the file descriptor of the socket.</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_keepalive"
- c:identifier="g_socket_get_keepalive"
- version="2.22">
- <doc xml:space="preserve">Gets the keepalive mode of the socket. For details on this,
- see g_socket_set_keepalive().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if keepalive is active, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_listen_backlog"
- c:identifier="g_socket_get_listen_backlog"
- version="2.22">
- <doc xml:space="preserve">Gets the listen backlog setting of the socket. For details on this,
- see g_socket_set_listen_backlog().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum number of pending connections.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_local_address"
- c:identifier="g_socket_get_local_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Try to get the local address of a bound socket. This is only
- useful if the socket has been bound to a local address,
- either explicitly or implicitly when connecting.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_multicast_loopback"
- c:identifier="g_socket_get_multicast_loopback"
- version="2.32">
- <doc xml:space="preserve">Gets the multicast loopback setting on @socket; if %TRUE (the
- default), outgoing multicast packets will be looped back to
- multicast listeners on the same host.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the multicast loopback setting on @socket</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_multicast_ttl"
- c:identifier="g_socket_get_multicast_ttl"
- version="2.32">
- <doc xml:space="preserve">Gets the multicast time-to-live setting on @socket; see
- g_socket_set_multicast_ttl() for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the multicast time-to-live setting on @socket</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_option"
- c:identifier="g_socket_get_option"
- version="2.36"
- throws="1">
- <doc xml:space="preserve">Gets the value of an integer-valued option on @socket, as with
- getsockopt(). (If you need to fetch a non-integer-valued option,
- you will need to call getsockopt() directly.)
- The [<gio/gnetworking.h>][gio-gnetworking.h]
- header pulls in system headers that will define most of the
- standard/portable socket options. For unusual socket protocols or
- platform-dependent options, you may need to include additional
- headers.
- Note that even for socket options that are a single byte in size,
- @value is still a pointer to a #gint variable, not a #guchar;
- g_socket_get_option() will handle the conversion internally.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure. On failure, @error will be set, and
- the system error value (`errno` or WSAGetLastError()) will still
- be set to the result of the getsockopt() call.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">the "API level" of the option (eg, `SOL_SOCKET`)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="optname" transfer-ownership="none">
- <doc xml:space="preserve">the "name" of the option (eg, `SO_BROADCAST`)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">return location for the option value</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_protocol"
- c:identifier="g_socket_get_protocol"
- version="2.22">
- <doc xml:space="preserve">Gets the socket protocol id the socket was created with.
- In case the protocol is unknown, -1 is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a protocol id, or -1 if unknown</doc>
- <type name="SocketProtocol" c:type="GSocketProtocol"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_remote_address"
- c:identifier="g_socket_get_remote_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Try to get the remove address of a connected socket. This is only
- useful for connection oriented sockets that have been connected.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_socket_type"
- c:identifier="g_socket_get_socket_type"
- version="2.22">
- <doc xml:space="preserve">Gets the socket type of the socket.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketType</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_timeout"
- c:identifier="g_socket_get_timeout"
- version="2.26">
- <doc xml:space="preserve">Gets the timeout setting of the socket. For details on this, see
- g_socket_set_timeout().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the timeout in seconds</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_ttl" c:identifier="g_socket_get_ttl" version="2.32">
- <doc xml:space="preserve">Gets the unicast time-to-live setting on @socket; see
- g_socket_set_ttl() for more details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the time-to-live setting on @socket</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_closed"
- c:identifier="g_socket_is_closed"
- version="2.22">
- <doc xml:space="preserve">Checks whether a socket is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if socket is closed, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_connected"
- c:identifier="g_socket_is_connected"
- version="2.22">
- <doc xml:space="preserve">Check whether the socket is connected. This is only useful for
- connection-oriented sockets.
- If using g_socket_shutdown(), this function will return %TRUE until the
- socket has been shut down for reading and writing. If you do a non-blocking
- connect, this function will not return %TRUE until after you call
- g_socket_check_connect_result().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if socket is connected, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="join_multicast_group"
- c:identifier="g_socket_join_multicast_group"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Registers @socket to receive multicast messages sent to @group.
- @socket must be a %G_SOCKET_TYPE_DATAGRAM socket, and must have
- been bound to an appropriate interface and port with
- g_socket_bind().
- If @iface is %NULL, the system will automatically pick an interface
- to bind to based on @group.
- If @source_specific is %TRUE, source-specific multicast as defined
- in RFC 4604 is used. Note that on older platforms this may fail
- with a %G_IO_ERROR_NOT_SUPPORTED error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="group" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress specifying the group address to join.</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="source_specific" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if source-specific multicast should be used</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="iface"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Name of the interface to use, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="leave_multicast_group"
- c:identifier="g_socket_leave_multicast_group"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Removes @socket from the multicast group defined by @group, @iface,
- and @source_specific (which must all have the same values they had
- when you joined the group).
- @socket remains bound to its address and port, and can still receive
- unicast messages after calling this.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="group" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetAddress specifying the group address to leave.</doc>
- <type name="InetAddress" c:type="GInetAddress*"/>
- </parameter>
- <parameter name="source_specific" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if source-specific multicast was used</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="iface"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Interface used</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="listen"
- c:identifier="g_socket_listen"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Marks the socket as a server socket, i.e. a socket that is used
- to accept incoming requests using g_socket_accept().
- Before calling this the socket must be bound to a local address using
- g_socket_bind().
- To set the maximum amount of outstanding clients, use
- g_socket_set_listen_backlog().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="receive"
- c:identifier="g_socket_receive"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Receive data (up to @size bytes) from a socket. This is mainly used by
- connection-oriented sockets; it is identical to g_socket_receive_from()
- with @address set to %NULL.
- For %G_SOCKET_TYPE_DATAGRAM and %G_SOCKET_TYPE_SEQPACKET sockets,
- g_socket_receive() will always read either 0 or 1 complete messages from
- the socket. If the received message is too large to fit in @buffer, then
- the data beyond @size bytes will be discarded, without any explicit
- indication that this has occurred.
- For %G_SOCKET_TYPE_STREAM sockets, g_socket_receive() can return any
- number of bytes, up to @size. If more than @size bytes have been
- received, the additional data will be returned in future calls to
- g_socket_receive().
- If the socket is in blocking mode the call will block until there
- is some data to receive, the connection is closed, or there is an
- error. If there is no data available and the socket is in
- non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be
- returned. To be notified when data is available, wait for the
- %G_IO_IN condition.
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes read, or 0 if the connection was closed by
- the peer, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least @size bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to read from the socket</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_from"
- c:identifier="g_socket_receive_from"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Receive data (up to @size bytes) from a socket.
- If @address is non-%NULL then @address will be set equal to the
- source address of the received packet.
- @address is owned by the caller.
- See g_socket_receive() for additional information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes read, or 0 if the connection was closed by
- the peer, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="address"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to a #GSocketAddress
- pointer, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress**"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least @size bytes long).</doc>
- <array length="2" zero-terminated="0" c:type="gchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to read from the socket</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_message"
- c:identifier="g_socket_receive_message"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Receive data from a socket. For receiving multiple messages, see
- g_socket_receive_messages(); for easier use, see
- g_socket_receive() and g_socket_receive_from().
- If @address is non-%NULL then @address will be set equal to the
- source address of the received packet.
- @address is owned by the caller.
- @vector must point to an array of #GInputVector structs and
- @num_vectors must be the length of this array. These structs
- describe the buffers that received data will be scattered into.
- If @num_vectors is -1, then @vectors is assumed to be terminated
- by a #GInputVector with a %NULL buffer pointer.
- As a special case, if @num_vectors is 0 (in which case, @vectors
- may of course be %NULL), then a single byte is received and
- discarded. This is to facilitate the common practice of sending a
- single '\0' byte for the purposes of transferring ancillary data.
- @messages, if non-%NULL, will be set to point to a newly-allocated
- array of #GSocketControlMessage instances or %NULL if no such
- messages was received. These correspond to the control messages
- received from the kernel, one #GSocketControlMessage per message
- from the kernel. This array is %NULL-terminated and must be freed
- by the caller using g_free() after calling g_object_unref() on each
- element. If @messages is %NULL, any control messages received will
- be discarded.
- @num_messages, if non-%NULL, will be set to the number of control
- messages received.
- If both @messages and @num_messages are non-%NULL, then
- @num_messages gives the number of #GSocketControlMessage instances
- in @messages (ie: not including the %NULL terminator).
- @flags is an in/out parameter. The commonly available arguments
- for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too
- (and g_socket_receive_message() may pass system-specific flags out).
- Flags passed in to the parameter affect the receive operation; flags returned
- out of it are relevant to the specific returned message.
- As with g_socket_receive(), data may be discarded if @socket is
- %G_SOCKET_TYPE_DATAGRAM or %G_SOCKET_TYPE_SEQPACKET and you do not
- provide enough buffer space to read a complete message. You can pass
- %G_SOCKET_MSG_PEEK in @flags to peek at the current message without
- removing it from the receive queue, but there is no portable way to find
- out the length of the message other than by reading it into a
- sufficiently-large buffer.
- If the socket is in blocking mode the call will block until there
- is some data to receive, the connection is closed, or there is an
- error. If there is no data available and the socket is in
- non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be
- returned. To be notified when data is available, wait for the
- %G_IO_IN condition.
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes read, or 0 if the connection was closed by
- the peer, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="address"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1">
- <doc xml:space="preserve">a pointer to a #GSocketAddress
- pointer, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress**"/>
- </parameter>
- <parameter name="vectors" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GInputVector structs</doc>
- <array length="2" zero-terminated="0" c:type="GInputVector*">
- <type name="InputVector" c:type="GInputVector"/>
- </array>
- </parameter>
- <parameter name="num_vectors" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @vectors, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="messages"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- nullable="1">
- <doc xml:space="preserve">a pointer which
- may be filled with an array of #GSocketControlMessages, or %NULL</doc>
- <array length="4"
- zero-terminated="0"
- c:type="GSocketControlMessage***">
- <type name="SocketControlMessage"
- c:type="GSocketControlMessage**"/>
- </array>
- </parameter>
- <parameter name="num_messages"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer which will be filled with the number of
- elements in @messages, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="flags"
- direction="inout"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to an int containing #GSocketMsgFlags flags</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_messages"
- c:identifier="g_socket_receive_messages"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Receive multiple data messages from @socket in one go. This is the most
- complicated and fully-featured version of this call. For easier use, see
- g_socket_receive(), g_socket_receive_from(), and g_socket_receive_message().
- @messages must point to an array of #GInputMessage structs and
- @num_messages must be the length of this array. Each #GInputMessage
- contains a pointer to an array of #GInputVector structs describing the
- buffers that the data received in each message will be written to. Using
- multiple #GInputVectors is more memory-efficient than manually copying data
- out of a single buffer to multiple sources, and more system-call-efficient
- than making multiple calls to g_socket_receive(), such as in scenarios where
- a lot of data packets need to be received (e.g. high-bandwidth video
- streaming over RTP/UDP).
- @flags modify how all messages are received. The commonly available
- arguments for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too. These
- flags affect the overall receive operation. Flags affecting individual
- messages are returned in #GInputMessage.flags.
- The other members of #GInputMessage are treated as described in its
- documentation.
- If #GSocket:blocking is %TRUE the call will block until @num_messages have
- been received, or the end of the stream is reached.
- If #GSocket:blocking is %FALSE the call will return up to @num_messages
- without blocking, or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the
- operating system to be received.
- In blocking mode, if #GSocket:timeout is positive and is reached before any
- messages are received, %G_IO_ERROR_TIMED_OUT is returned, otherwise up to
- @num_messages are returned. (Note: This is effectively the
- behaviour of `MSG_WAITFORONE` with recvmmsg().)
- To be notified when messages are available, wait for the
- %G_IO_IN condition. Note though that you may still receive
- %G_IO_ERROR_WOULD_BLOCK from g_socket_receive_messages() even if you were
- previously notified of a %G_IO_IN condition.
- If the remote peer closes the connection, any messages queued in the
- operating system will be returned, and subsequent calls to
- g_socket_receive_messages() will return 0 (with no error set).
- On error -1 is returned and @error is set accordingly. An error will only
- be returned if zero messages could be received; otherwise the number of
- messages successfully received before the error will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages received, or -1 on error. Note that the number
- of messages received may be smaller than @num_messages if in non-blocking
- mode, if the peer closed the connection, or if @num_messages
- was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
- to receive the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GInputMessage structs</doc>
- <array length="1" zero-terminated="0" c:type="GInputMessage*">
- <type name="InputMessage" c:type="GInputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags for the overall operation</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_with_blocking"
- c:identifier="g_socket_receive_with_blocking"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">This behaves exactly the same as g_socket_receive(), except that
- the choice of blocking or non-blocking behavior is determined by
- the @blocking argument rather than by @socket's properties.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes read, or 0 if the connection was closed by
- the peer, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into (which should be at least @size bytes long).</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes you want to read from the socket</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="blocking" transfer-ownership="none">
- <doc xml:space="preserve">whether to do blocking or non-blocking I/O</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send"
- c:identifier="g_socket_send"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Tries to send @size bytes from @buffer on the socket. This is
- mainly used by connection-oriented sockets; it is identical to
- g_socket_send_to() with @address set to %NULL.
- If the socket is in blocking mode the call will block until there is
- space for the data in the socket queue. If there is no space available
- and the socket is in non-blocking mode a %G_IO_ERROR_WOULD_BLOCK error
- will be returned. To be notified when space is available, wait for the
- %G_IO_OUT condition. Note though that you may still receive
- %G_IO_ERROR_WOULD_BLOCK from g_socket_send() even if you were previously
- notified of a %G_IO_OUT condition. (On Windows in particular, this is
- very common due to the way the underlying APIs work.)
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written (which may be less than @size), or -1
- on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer
- containing the data to send.</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to send</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_message"
- c:identifier="g_socket_send_message"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Send data to @address on @socket. For sending multiple messages see
- g_socket_send_messages(); for easier use, see
- g_socket_send() and g_socket_send_to().
- If @address is %NULL then the message is sent to the default receiver
- (set by g_socket_connect()).
- @vectors must point to an array of #GOutputVector structs and
- @num_vectors must be the length of this array. (If @num_vectors is -1,
- then @vectors is assumed to be terminated by a #GOutputVector with a
- %NULL buffer pointer.) The #GOutputVector structs describe the buffers
- that the sent data will be gathered from. Using multiple
- #GOutputVectors is more memory-efficient than manually copying
- data from multiple sources into a single buffer, and more
- network-efficient than making multiple calls to g_socket_send().
- @messages, if non-%NULL, is taken to point to an array of @num_messages
- #GSocketControlMessage instances. These correspond to the control
- messages to be sent on the socket.
- If @num_messages is -1 then @messages is treated as a %NULL-terminated
- array.
- @flags modify how the message is sent. The commonly available arguments
- for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too.
- If the socket is in blocking mode the call will block until there is
- space for the data in the socket queue. If there is no space available
- and the socket is in non-blocking mode a %G_IO_ERROR_WOULD_BLOCK error
- will be returned. To be notified when space is available, wait for the
- %G_IO_OUT condition. Note though that you may still receive
- %G_IO_ERROR_WOULD_BLOCK from g_socket_send() even if you were previously
- notified of a %G_IO_OUT condition. (On Windows in particular, this is
- very common due to the way the underlying APIs work.)
- On error -1 is returned and @error is set accordingly.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written (which may be less than @size), or -1
- on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="address"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GSocketAddress, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="vectors" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GOutputVector structs</doc>
- <array length="2" zero-terminated="0" c:type="GOutputVector*">
- <type name="OutputVector" c:type="GOutputVector"/>
- </array>
- </parameter>
- <parameter name="num_vectors" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @vectors, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="messages"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to an
- array of #GSocketControlMessages, or %NULL.</doc>
- <array length="4"
- zero-terminated="0"
- c:type="GSocketControlMessage**">
- <type name="SocketControlMessage"
- c:type="GSocketControlMessage*"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">number of elements in @messages, or -1.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_messages"
- c:identifier="g_socket_send_messages"
- version="2.44"
- throws="1">
- <doc xml:space="preserve">Send multiple data messages from @socket in one go. This is the most
- complicated and fully-featured version of this call. For easier use, see
- g_socket_send(), g_socket_send_to(), and g_socket_send_message().
- @messages must point to an array of #GOutputMessage structs and
- @num_messages must be the length of this array. Each #GOutputMessage
- contains an address to send the data to, and a pointer to an array of
- #GOutputVector structs to describe the buffers that the data to be sent
- for each message will be gathered from. Using multiple #GOutputVectors is
- more memory-efficient than manually copying data from multiple sources
- into a single buffer, and more network-efficient than making multiple
- calls to g_socket_send(). Sending multiple messages in one go avoids the
- overhead of making a lot of syscalls in scenarios where a lot of data
- packets need to be sent (e.g. high-bandwidth video streaming over RTP/UDP),
- or where the same data needs to be sent to multiple recipients.
- @flags modify how the message is sent. The commonly available arguments
- for this are available in the #GSocketMsgFlags enum, but the
- values there are the same as the system values, and the flags
- are passed in as-is, so you can pass in system-specific flags too.
- If the socket is in blocking mode the call will block until there is
- space for all the data in the socket queue. If there is no space available
- and the socket is in non-blocking mode a %G_IO_ERROR_WOULD_BLOCK error
- will be returned if no data was written at all, otherwise the number of
- messages sent will be returned. To be notified when space is available,
- wait for the %G_IO_OUT condition. Note though that you may still receive
- %G_IO_ERROR_WOULD_BLOCK from g_socket_send() even if you were previously
- notified of a %G_IO_OUT condition. (On Windows in particular, this is
- very common due to the way the underlying APIs work.)
- On error -1 is returned and @error is set accordingly. An error will only
- be returned if zero messages could be sent; otherwise the number of messages
- successfully sent before the error will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">number of messages sent, or -1 on error. Note that the number of
- messages sent may be smaller than @num_messages if the socket is
- non-blocking or if @num_messages was larger than UIO_MAXIOV (1024),
- in which case the caller may re-try to send the remaining messages.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="messages" transfer-ownership="none">
- <doc xml:space="preserve">an array of #GOutputMessage structs</doc>
- <array length="1" zero-terminated="0" c:type="GOutputMessage*">
- <type name="OutputMessage" c:type="GOutputMessage"/>
- </array>
- </parameter>
- <parameter name="num_messages" transfer-ownership="none">
- <doc xml:space="preserve">the number of elements in @messages</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">an int containing #GSocketMsgFlags flags</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_to"
- c:identifier="g_socket_send_to"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Tries to send @size bytes from @buffer to @address. If @address is
- %NULL then the message is sent to the default receiver (set by
- g_socket_connect()).
- See g_socket_send() for additional information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written (which may be less than @size), or -1
- on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="address"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GSocketAddress, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer
- containing the data to send.</doc>
- <array length="2" zero-terminated="0" c:type="gchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to send</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_with_blocking"
- c:identifier="g_socket_send_with_blocking"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">This behaves exactly the same as g_socket_send(), except that
- the choice of blocking or non-blocking behavior is determined by
- the @blocking argument rather than by @socket's properties.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Number of bytes written (which may be less than @size), or -1
- on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer
- containing the data to send.</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to send</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="blocking" transfer-ownership="none">
- <doc xml:space="preserve">whether to do blocking or non-blocking I/O</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_blocking"
- c:identifier="g_socket_set_blocking"
- version="2.22">
- <doc xml:space="preserve">Sets the blocking mode of the socket. In blocking mode
- all operations (which don’t take an explicit blocking parameter) block until
- they succeed or there is an error. In
- non-blocking mode all functions return results immediately or
- with a %G_IO_ERROR_WOULD_BLOCK error.
- All sockets are created in blocking mode. However, note that the
- platform level socket is always non-blocking, and blocking mode
- is a GSocket level feature.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="blocking" transfer-ownership="none">
- <doc xml:space="preserve">Whether to use blocking I/O or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_broadcast"
- c:identifier="g_socket_set_broadcast"
- version="2.32">
- <doc xml:space="preserve">Sets whether @socket should allow sending to broadcast addresses.
- This is %FALSE by default.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="broadcast" transfer-ownership="none">
- <doc xml:space="preserve">whether @socket should allow sending to broadcast
- addresses</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_keepalive"
- c:identifier="g_socket_set_keepalive"
- version="2.22">
- <doc xml:space="preserve">Sets or unsets the %SO_KEEPALIVE flag on the underlying socket. When
- this flag is set on a socket, the system will attempt to verify that the
- remote socket endpoint is still present if a sufficiently long period of
- time passes with no data being exchanged. If the system is unable to
- verify the presence of the remote endpoint, it will automatically close
- the connection.
- This option is only functional on certain kinds of sockets. (Notably,
- %G_SOCKET_PROTOCOL_TCP sockets.)
- The exact time between pings is system- and protocol-dependent, but will
- normally be at least two hours. Most commonly, you would set this flag
- on a server socket if you want to allow clients to remain idle for long
- periods of time, but also want to ensure that connections are eventually
- garbage-collected if clients crash or become unreachable.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="keepalive" transfer-ownership="none">
- <doc xml:space="preserve">Value for the keepalive flag</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_listen_backlog"
- c:identifier="g_socket_set_listen_backlog"
- version="2.22">
- <doc xml:space="preserve">Sets the maximum number of outstanding connections allowed
- when listening on this socket. If more clients than this are
- connecting to the socket and the application is not handling them
- on time then the new connections will be refused.
- Note that this must be called before g_socket_listen() and has no
- effect if called after that.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="backlog" transfer-ownership="none">
- <doc xml:space="preserve">the maximum number of pending connections.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_multicast_loopback"
- c:identifier="g_socket_set_multicast_loopback"
- version="2.32">
- <doc xml:space="preserve">Sets whether outgoing multicast packets will be received by sockets
- listening on that multicast address on the same host. This is %TRUE
- by default.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="loopback" transfer-ownership="none">
- <doc xml:space="preserve">whether @socket should receive messages sent to its
- multicast groups from the local host</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_multicast_ttl"
- c:identifier="g_socket_set_multicast_ttl"
- version="2.32">
- <doc xml:space="preserve">Sets the time-to-live for outgoing multicast datagrams on @socket.
- By default, this is 1, meaning that multicast packets will not leave
- the local network.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="ttl" transfer-ownership="none">
- <doc xml:space="preserve">the time-to-live value for all multicast datagrams on @socket</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_option"
- c:identifier="g_socket_set_option"
- version="2.36"
- throws="1">
- <doc xml:space="preserve">Sets the value of an integer-valued option on @socket, as with
- setsockopt(). (If you need to set a non-integer-valued option,
- you will need to call setsockopt() directly.)
- The [<gio/gnetworking.h>][gio-gnetworking.h]
- header pulls in system headers that will define most of the
- standard/portable socket options. For unusual socket protocols or
- platform-dependent options, you may need to include additional
- headers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure. On failure, @error will be set, and
- the system error value (`errno` or WSAGetLastError()) will still
- be set to the result of the setsockopt() call.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">the "API level" of the option (eg, `SOL_SOCKET`)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="optname" transfer-ownership="none">
- <doc xml:space="preserve">the "name" of the option (eg, `SO_BROADCAST`)</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value to set the option to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_timeout"
- c:identifier="g_socket_set_timeout"
- version="2.26">
- <doc xml:space="preserve">Sets the time in seconds after which I/O operations on @socket will
- time out if they have not yet completed.
- On a blocking socket, this means that any blocking #GSocket
- operation will time out after @timeout seconds of inactivity,
- returning %G_IO_ERROR_TIMED_OUT.
- On a non-blocking socket, calls to g_socket_condition_wait() will
- also fail with %G_IO_ERROR_TIMED_OUT after the given time. Sources
- created with g_socket_create_source() will trigger after
- @timeout seconds of inactivity, with the requested condition
- set, at which point calling g_socket_receive(), g_socket_send(),
- g_socket_check_connect_result(), etc, will fail with
- %G_IO_ERROR_TIMED_OUT.
- If @timeout is 0 (the default), operations will never time out
- on their own.
- Note that if an I/O operation is interrupted by a signal, this may
- cause the timeout to be reset.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the timeout for @socket, in seconds, or 0 for none</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_ttl" c:identifier="g_socket_set_ttl" version="2.32">
- <doc xml:space="preserve">Sets the time-to-live for outgoing unicast packets on @socket.
- By default the platform-specific default value is used.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="ttl" transfer-ownership="none">
- <doc xml:space="preserve">the time-to-live value for all unicast packets on @socket</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="shutdown"
- c:identifier="g_socket_shutdown"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Shut down part or all of a full-duplex connection.
- If @shutdown_read is %TRUE then the receiving side of the connection
- is shut down, and further reading is disallowed.
- If @shutdown_write is %TRUE then the sending side of the connection
- is shut down, and further writing is disallowed.
- It is allowed for both @shutdown_read and @shutdown_write to be %TRUE.
- One example where it is useful to shut down only one side of a connection is
- graceful disconnect for TCP connections where you close the sending side,
- then wait for the other side to close the connection, thus ensuring that the
- other side saw all sent data.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- <parameter name="shutdown_read" transfer-ownership="none">
- <doc xml:space="preserve">whether to shut down the read side</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="shutdown_write" transfer-ownership="none">
- <doc xml:space="preserve">whether to shut down the write side</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="speaks_ipv4"
- c:identifier="g_socket_speaks_ipv4"
- version="2.22">
- <doc xml:space="preserve">Checks if a socket is capable of speaking IPv4.
- IPv4 sockets are capable of speaking IPv4. On some operating systems
- and under some combinations of circumstances IPv6 sockets are also
- capable of speaking IPv4. See RFC 3493 section 3.7 for more
- information.
- No other types of sockets are currently considered as being capable
- of speaking IPv4.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if this socket can be used with IPv4.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="blocking" writable="1" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="broadcast"
- version="2.32"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether the socket should allow sending to broadcast addresses.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="family"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SocketFamily"/>
- </property>
- <property name="fd"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <property name="keepalive" writable="1" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="listen-backlog" writable="1" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <property name="local-address" transfer-ownership="none">
- <type name="SocketAddress"/>
- </property>
- <property name="multicast-loopback"
- version="2.32"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether outgoing multicast packets loop back to the local host.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="multicast-ttl"
- version="2.32"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Time-to-live out outgoing multicast packets</doc>
- <type name="guint" c:type="guint"/>
- </property>
- <property name="protocol"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SocketProtocol"/>
- </property>
- <property name="remote-address" transfer-ownership="none">
- <type name="SocketAddress"/>
- </property>
- <property name="timeout"
- version="2.26"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The timeout in seconds on socket I/O</doc>
- <type name="guint" c:type="guint"/>
- </property>
- <property name="ttl"
- version="2.32"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Time-to-live for outgoing unicast packets</doc>
- <type name="guint" c:type="guint"/>
- </property>
- <property name="type"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SocketType"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="SocketPrivate" c:type="GSocketPrivate*"/>
- </field>
- </class>
- <class name="SocketAddress"
- c:symbol-prefix="socket_address"
- c:type="GSocketAddress"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GSocketAddress"
- glib:get-type="g_socket_address_get_type"
- glib:type-struct="SocketAddressClass">
- <doc xml:space="preserve">#GSocketAddress is the equivalent of struct sockaddr in the BSD
- sockets API. This is an abstract class; use #GInetSocketAddress
- for internet sockets, or #GUnixSocketAddress for UNIX domain sockets.</doc>
- <implements name="SocketConnectable"/>
- <constructor name="new_from_native"
- c:identifier="g_socket_address_new_from_native"
- version="2.22">
- <doc xml:space="preserve">Creates a #GSocketAddress subclass corresponding to the native
- struct sockaddr @native.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddress if @native could successfully
- be converted, otherwise %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="native" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to a struct sockaddr</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="len" transfer-ownership="none">
- <doc xml:space="preserve">the size of the memory location pointed to by @native</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="get_family" invoker="get_family" version="2.22">
- <doc xml:space="preserve">Gets the socket family type of @address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the socket family type of @address</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_native_size"
- invoker="get_native_size"
- version="2.22">
- <doc xml:space="preserve">Gets the size of @address's native struct sockaddr.
- You can use this to allocate memory to pass to
- g_socket_address_to_native().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the size of the native struct sockaddr that
- @address represents</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="to_native"
- invoker="to_native"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Converts a #GSocketAddress to a native struct sockaddr, which can
- be passed to low-level functions like connect() or bind().
- If not enough space is available, a %G_IO_ERROR_NO_SPACE error
- is returned. If the address type is not known on the system
- then a %G_IO_ERROR_NOT_SUPPORTED error is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @dest was filled in, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </instance-parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to a memory location that will contain the native
- struct sockaddr</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destlen" transfer-ownership="none">
- <doc xml:space="preserve">the size of @dest. Must be at least as large as
- g_socket_address_get_native_size()</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_family"
- c:identifier="g_socket_address_get_family"
- version="2.22">
- <doc xml:space="preserve">Gets the socket family type of @address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the socket family type of @address</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_native_size"
- c:identifier="g_socket_address_get_native_size"
- version="2.22">
- <doc xml:space="preserve">Gets the size of @address's native struct sockaddr.
- You can use this to allocate memory to pass to
- g_socket_address_to_native().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the size of the native struct sockaddr that
- @address represents</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_native"
- c:identifier="g_socket_address_to_native"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Converts a #GSocketAddress to a native struct sockaddr, which can
- be passed to low-level functions like connect() or bind().
- If not enough space is available, a %G_IO_ERROR_NO_SPACE error
- is returned. If the address type is not known on the system
- then a %G_IO_ERROR_NOT_SUPPORTED error is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @dest was filled in, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </instance-parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to a memory location that will contain the native
- struct sockaddr</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destlen" transfer-ownership="none">
- <doc xml:space="preserve">the size of @dest. Must be at least as large as
- g_socket_address_get_native_size()</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <property name="family" transfer-ownership="none">
- <type name="SocketFamily"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- </class>
- <record name="SocketAddressClass"
- c:type="GSocketAddressClass"
- glib:is-gtype-struct-for="SocketAddress">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_family">
- <callback name="get_family">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the socket family type of @address</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_native_size">
- <callback name="get_native_size">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the size of the native struct sockaddr that
- @address represents</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="to_native">
- <callback name="to_native" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @dest was filled in, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a pointer to a memory location that will contain the native
- struct sockaddr</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destlen" transfer-ownership="none">
- <doc xml:space="preserve">the size of @dest. Must be at least as large as
- g_socket_address_get_native_size()</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="SocketAddressEnumerator"
- c:symbol-prefix="socket_address_enumerator"
- c:type="GSocketAddressEnumerator"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GSocketAddressEnumerator"
- glib:get-type="g_socket_address_enumerator_get_type"
- glib:type-struct="SocketAddressEnumeratorClass">
- <doc xml:space="preserve">Enumerator type for objects that contain or generate
- #GSocketAddress<!-- -->es.</doc>
- <virtual-method name="next" invoker="next" throws="1">
- <doc xml:space="preserve">Retrieves the next #GSocketAddress from @enumerator. Note that this
- may block for some amount of time. (Eg, a #GNetworkAddress may need
- to do a DNS lookup before it can return an address.) Use
- g_socket_address_enumerator_next_async() if you need to avoid
- blocking.
- If @enumerator is expected to yield addresses, but for some reason
- is unable to (eg, because of a DNS error), then the first call to
- g_socket_address_enumerator_next() will return an appropriate error
- in *@error. However, if the first call to
- g_socket_address_enumerator_next() succeeds, then any further
- internal errors (other than @cancellable being triggered) will be
- ignored.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress (owned by the caller), or %NULL on
- error (in which case *@error will be set) or if there are no
- more addresses.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="next_async" invoker="next_async">
- <doc xml:space="preserve">Asynchronously retrieves the next #GSocketAddress from @enumerator
- and then calls @callback, which must call
- g_socket_address_enumerator_next_finish() to get the result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request
- is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="next_finish" invoker="next_finish" throws="1">
- <doc xml:space="preserve">Retrieves the result of a completed call to
- g_socket_address_enumerator_next_async(). See
- g_socket_address_enumerator_next() for more information about
- error handling.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress (owned by the caller), or %NULL on
- error (in which case *@error will be set) or if there are no
- more addresses.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="next"
- c:identifier="g_socket_address_enumerator_next"
- throws="1">
- <doc xml:space="preserve">Retrieves the next #GSocketAddress from @enumerator. Note that this
- may block for some amount of time. (Eg, a #GNetworkAddress may need
- to do a DNS lookup before it can return an address.) Use
- g_socket_address_enumerator_next_async() if you need to avoid
- blocking.
- If @enumerator is expected to yield addresses, but for some reason
- is unable to (eg, because of a DNS error), then the first call to
- g_socket_address_enumerator_next() will return an appropriate error
- in *@error. However, if the first call to
- g_socket_address_enumerator_next() succeeds, then any further
- internal errors (other than @cancellable being triggered) will be
- ignored.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress (owned by the caller), or %NULL on
- error (in which case *@error will be set) or if there are no
- more addresses.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="next_async"
- c:identifier="g_socket_address_enumerator_next_async">
- <doc xml:space="preserve">Asynchronously retrieves the next #GSocketAddress from @enumerator
- and then calls @callback, which must call
- g_socket_address_enumerator_next_finish() to get the result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request
- is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="next_finish"
- c:identifier="g_socket_address_enumerator_next_finish"
- throws="1">
- <doc xml:space="preserve">Retrieves the result of a completed call to
- g_socket_address_enumerator_next_async(). See
- g_socket_address_enumerator_next() for more information about
- error handling.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress (owned by the caller), or %NULL on
- error (in which case *@error will be set) or if there are no
- more addresses.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- </class>
- <record name="SocketAddressEnumeratorClass"
- c:type="GSocketAddressEnumeratorClass"
- glib:is-gtype-struct-for="SocketAddressEnumerator">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="next">
- <callback name="next" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress (owned by the caller), or %NULL on
- error (in which case *@error will be set) or if there are no
- more addresses.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="next_async">
- <callback name="next_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request
- is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="next_finish">
- <callback name="next_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress (owned by the caller), or %NULL on
- error (in which case *@error will be set) or if there are no
- more addresses.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="enumerator" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddressEnumerator</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="SocketClass"
- c:type="GSocketClass"
- glib:is-gtype-struct-for="Socket">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved7" introspectable="0">
- <callback name="_g_reserved7">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved8" introspectable="0">
- <callback name="_g_reserved8">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved9" introspectable="0">
- <callback name="_g_reserved9">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved10" introspectable="0">
- <callback name="_g_reserved10">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <class name="SocketClient"
- c:symbol-prefix="socket_client"
- c:type="GSocketClient"
- version="2.22"
- parent="GObject.Object"
- glib:type-name="GSocketClient"
- glib:get-type="g_socket_client_get_type"
- glib:type-struct="SocketClientClass">
- <doc xml:space="preserve">#GSocketClient is a lightweight high-level utility class for connecting to
- a network host using a connection oriented socket type.
- You create a #GSocketClient object, set any options you want, and then
- call a sync or async connect operation, which returns a #GSocketConnection
- subclass on success.
- The type of the #GSocketConnection object returned depends on the type of
- the underlying socket that is in use. For instance, for a TCP/IP connection
- it will be a #GTcpConnection.
- As #GSocketClient is a lightweight object, you don't need to cache it. You
- can just create a new one any time you need one.</doc>
- <constructor name="new"
- c:identifier="g_socket_client_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GSocketClient with the default options.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketClient.
- Free the returned object with g_object_unref().</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </return-value>
- </constructor>
- <virtual-method name="event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="SocketClientEvent" c:type="GSocketClientEvent"/>
- </parameter>
- <parameter name="connectable" transfer-ownership="none">
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_application_proxy"
- c:identifier="g_socket_client_add_application_proxy">
- <doc xml:space="preserve">Enable proxy protocols to be handled by the application. When the
- indicated proxy protocol is returned by the #GProxyResolver,
- #GSocketClient will consider this protocol as supported but will
- not try to find a #GProxy instance to handle handshaking. The
- application must check for this case by calling
- g_socket_connection_get_remote_address() on the returned
- #GSocketConnection, and seeing if it's a #GProxyAddress of the
- appropriate type, to determine whether or not it needs to handle
- the proxy handshaking itself.
- This should be used for proxy protocols that are dialects of
- another protocol such as HTTP proxy. It also allows cohabitation of
- proxy protocols that are reused between protocols. A good example
- is HTTP. It can be used to proxy HTTP, FTP and Gopher and can also
- be use as generic socket proxy through the HTTP CONNECT method.
- When the proxy is detected as being an application proxy, TLS handshake
- will be skipped. This is required to let the application do the proxy
- specific handshake.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">The proxy protocol</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect"
- c:identifier="g_socket_client_connect"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Tries to resolve the @connectable and make a network connection to it.
- Upon a successful connection, a new #GSocketConnection is constructed
- and returned. The caller owns this new object and must drop their
- reference to it when finished with it.
- The type of the #GSocketConnection object returned depends on the type of
- the underlying socket that is used. For instance, for a TCP/IP connection
- it will be a #GTcpConnection.
- The socket created will be the same family as the address that the
- @connectable resolves to, unless family is set with g_socket_client_set_family()
- or indirectly via g_socket_client_set_local_address(). The socket type
- defaults to %G_SOCKET_TYPE_STREAM but can be set with
- g_socket_client_set_socket_type().
- If a local address is specified with g_socket_client_set_local_address() the
- socket will be bound to this address before connecting.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable specifying the remote address.</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_async"
- c:identifier="g_socket_client_connect_async"
- version="2.22">
- <doc xml:space="preserve">This is the asynchronous version of g_socket_client_connect().
- When the operation is finished @callback will be
- called. You can then call g_socket_client_connect_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable specifying the remote address.</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_finish"
- c:identifier="g_socket_client_connect_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an async connect operation. See g_socket_client_connect_async()</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_host"
- c:identifier="g_socket_client_connect_to_host"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">This is a helper function for g_socket_client_connect().
- Attempts to create a TCP connection to the named host.
- @host_and_port may be in any of a number of recognized formats; an IPv6
- address, an IPv4 address, or a domain name (in which case a DNS
- lookup is performed). Quoting with [] is supported for all address
- types. A port override may be specified in the usual way with a
- colon. Ports may be given as decimal numbers or symbolic names (in
- which case an /etc/services lookup is performed).
- If no port override is given in @host_and_port then @default_port will be
- used as the port number to connect to.
- In general, @host_and_port is expected to be provided by the user (allowing
- them to give the hostname, and a port override if necessary) and
- @default_port is expected to be provided by the application.
- In the case that an IP address is given, a single connection
- attempt is made. In the case that a name is given, multiple
- connection attempts may be made, in turn and according to the
- number of address records in DNS, until a connection succeeds.
- Upon a successful connection, a new #GSocketConnection is constructed
- and returned. The caller owns this new object and must drop their
- reference to it when finished with it.
- In the event of any failure (DNS error, service not found, no hosts
- connectable) %NULL is returned and @error (if non-%NULL) is set
- accordingly.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="host_and_port" transfer-ownership="none">
- <doc xml:space="preserve">the name and optionally port of the host to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="default_port" transfer-ownership="none">
- <doc xml:space="preserve">the default port to connect to</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_host_async"
- c:identifier="g_socket_client_connect_to_host_async"
- version="2.22">
- <doc xml:space="preserve">This is the asynchronous version of g_socket_client_connect_to_host().
- When the operation is finished @callback will be
- called. You can then call g_socket_client_connect_to_host_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="host_and_port" transfer-ownership="none">
- <doc xml:space="preserve">the name and optionally the port of the host to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="default_port" transfer-ownership="none">
- <doc xml:space="preserve">the default port to connect to</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_host_finish"
- c:identifier="g_socket_client_connect_to_host_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an async connect operation. See g_socket_client_connect_to_host_async()</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_service"
- c:identifier="g_socket_client_connect_to_service"
- throws="1">
- <doc xml:space="preserve">Attempts to create a TCP connection to a service.
- This call looks up the SRV record for @service at @domain for the
- "tcp" protocol. It then attempts to connect, in turn, to each of
- the hosts providing the service until either a connection succeeds
- or there are no hosts remaining.
- Upon a successful connection, a new #GSocketConnection is constructed
- and returned. The caller owns this new object and must drop their
- reference to it when finished with it.
- In the event of any failure (DNS error, service not found, no hosts
- connectable) %NULL is returned and @error (if non-%NULL) is set
- accordingly.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection if successful, or %NULL on error</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a domain name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">the name of the service to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_service_async"
- c:identifier="g_socket_client_connect_to_service_async"
- version="2.22">
- <doc xml:space="preserve">This is the asynchronous version of
- g_socket_client_connect_to_service().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a domain name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">the name of the service to connect to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_service_finish"
- c:identifier="g_socket_client_connect_to_service_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an async connect operation. See g_socket_client_connect_to_service_async()</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_uri"
- c:identifier="g_socket_client_connect_to_uri"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">This is a helper function for g_socket_client_connect().
- Attempts to create a TCP connection with a network URI.
- @uri may be any valid URI containing an "authority" (hostname/port)
- component. If a port is not specified in the URI, @default_port
- will be used. TLS will be negotiated if #GSocketClient:tls is %TRUE.
- (#GSocketClient does not know to automatically assume TLS for
- certain URI schemes.)
- Using this rather than g_socket_client_connect() or
- g_socket_client_connect_to_host() allows #GSocketClient to
- determine when to use application-specific proxy protocols.
- Upon a successful connection, a new #GSocketConnection is constructed
- and returned. The caller owns this new object and must drop their
- reference to it when finished with it.
- In the event of any failure (DNS error, service not found, no hosts
- connectable) %NULL is returned and @error (if non-%NULL) is set
- accordingly.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">A network URI</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="default_port" transfer-ownership="none">
- <doc xml:space="preserve">the default port to connect to</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_uri_async"
- c:identifier="g_socket_client_connect_to_uri_async"
- version="2.26">
- <doc xml:space="preserve">This is the asynchronous version of g_socket_client_connect_to_uri().
- When the operation is finished @callback will be
- called. You can then call g_socket_client_connect_to_uri_finish() to get
- the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a network uri</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="default_port" transfer-ownership="none">
- <doc xml:space="preserve">the default port to connect to</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_to_uri_finish"
- c:identifier="g_socket_client_connect_to_uri_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an async connect operation. See g_socket_client_connect_to_uri_async()</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_enable_proxy"
- c:identifier="g_socket_client_get_enable_proxy"
- version="2.26">
- <doc xml:space="preserve">Gets the proxy enable state; see g_socket_client_set_enable_proxy()</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether proxying is enabled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_family"
- c:identifier="g_socket_client_get_family"
- version="2.22">
- <doc xml:space="preserve">Gets the socket family of the socket client.
- See g_socket_client_set_family() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketFamily</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_local_address"
- c:identifier="g_socket_client_get_local_address"
- version="2.22">
- <doc xml:space="preserve">Gets the local address of the socket client.
- See g_socket_client_set_local_address() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress or %NULL. Do not free.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_protocol"
- c:identifier="g_socket_client_get_protocol"
- version="2.22">
- <doc xml:space="preserve">Gets the protocol name type of the socket client.
- See g_socket_client_set_protocol() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketProtocol</doc>
- <type name="SocketProtocol" c:type="GSocketProtocol"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_proxy_resolver"
- c:identifier="g_socket_client_get_proxy_resolver"
- version="2.36">
- <doc xml:space="preserve">Gets the #GProxyResolver being used by @client. Normally, this will
- be the resolver returned by g_proxy_resolver_get_default(), but you
- can override it with g_socket_client_set_proxy_resolver().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GProxyResolver being used by
- @client.</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_socket_type"
- c:identifier="g_socket_client_get_socket_type"
- version="2.22">
- <doc xml:space="preserve">Gets the socket type of the socket client.
- See g_socket_client_set_socket_type() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketFamily</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_timeout"
- c:identifier="g_socket_client_get_timeout"
- version="2.26">
- <doc xml:space="preserve">Gets the I/O timeout time for sockets created by @client.
- See g_socket_client_set_timeout() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the timeout in seconds</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_tls"
- c:identifier="g_socket_client_get_tls"
- version="2.28">
- <doc xml:space="preserve">Gets whether @client creates TLS connections. See
- g_socket_client_set_tls() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @client uses TLS</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_tls_validation_flags"
- c:identifier="g_socket_client_get_tls_validation_flags"
- version="2.28">
- <doc xml:space="preserve">Gets the TLS validation flags used creating TLS connections via
- @client.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the TLS validation flags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_enable_proxy"
- c:identifier="g_socket_client_set_enable_proxy"
- version="2.26">
- <doc xml:space="preserve">Sets whether or not @client attempts to make connections via a
- proxy server. When enabled (the default), #GSocketClient will use a
- #GProxyResolver to determine if a proxy protocol such as SOCKS is
- needed, and automatically do the necessary proxy negotiation.
- See also g_socket_client_set_proxy_resolver().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="enable" transfer-ownership="none">
- <doc xml:space="preserve">whether to enable proxies</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_family"
- c:identifier="g_socket_client_set_family"
- version="2.22">
- <doc xml:space="preserve">Sets the socket family of the socket client.
- If this is set to something other than %G_SOCKET_FAMILY_INVALID
- then the sockets created by this object will be of the specified
- family.
- This might be useful for instance if you want to force the local
- connection to be an ipv4 socket, even though the address might
- be an ipv6 mapped to ipv4 address.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketFamily</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_local_address"
- c:identifier="g_socket_client_set_local_address"
- version="2.22">
- <doc xml:space="preserve">Sets the local address of the socket client.
- The sockets created by this object will bound to the
- specified address (if not %NULL) before connecting.
- This is useful if you want to ensure that the local
- side of the connection is on a specific port, or on
- a specific interface.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="address"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GSocketAddress, or %NULL</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_protocol"
- c:identifier="g_socket_client_set_protocol"
- version="2.22">
- <doc xml:space="preserve">Sets the protocol of the socket client.
- The sockets created by this object will use of the specified
- protocol.
- If @protocol is %0 that means to use the default
- protocol for the socket family and type.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketProtocol</doc>
- <type name="SocketProtocol" c:type="GSocketProtocol"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_proxy_resolver"
- c:identifier="g_socket_client_set_proxy_resolver"
- version="2.36">
- <doc xml:space="preserve">Overrides the #GProxyResolver used by @client. You can call this if
- you want to use specific proxies, rather than using the system
- default proxy settings.
- Note that whether or not the proxy resolver is actually used
- depends on the setting of #GSocketClient:enable-proxy, which is not
- changed by this function (but which is %TRUE by default)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="proxy_resolver"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GProxyResolver, or %NULL for the
- default.</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_socket_type"
- c:identifier="g_socket_client_set_socket_type"
- version="2.22">
- <doc xml:space="preserve">Sets the socket type of the socket client.
- The sockets created by this object will be of the specified
- type.
- It doesn't make sense to specify a type of %G_SOCKET_TYPE_DATAGRAM,
- as GSocketClient is used for connection oriented services.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketType</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_timeout"
- c:identifier="g_socket_client_set_timeout"
- version="2.26">
- <doc xml:space="preserve">Sets the I/O timeout for sockets created by @client. @timeout is a
- time in seconds, or 0 for no timeout (the default).
- The timeout value affects the initial connection attempt as well,
- so setting this may cause calls to g_socket_client_connect(), etc,
- to fail with %G_IO_ERROR_TIMED_OUT.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the timeout</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_tls"
- c:identifier="g_socket_client_set_tls"
- version="2.28">
- <doc xml:space="preserve">Sets whether @client creates TLS (aka SSL) connections. If @tls is
- %TRUE, @client will wrap its connections in a #GTlsClientConnection
- and perform a TLS handshake when connecting.
- Note that since #GSocketClient must return a #GSocketConnection,
- but #GTlsClientConnection is not a #GSocketConnection, this
- actually wraps the resulting #GTlsClientConnection in a
- #GTcpWrapperConnection when returning it. You can use
- g_tcp_wrapper_connection_get_base_io_stream() on the return value
- to extract the #GTlsClientConnection.
- If you need to modify the behavior of the TLS handshake (eg, by
- setting a client-side certificate to use, or connecting to the
- #GTlsConnection::accept-certificate signal), you can connect to
- @client's #GSocketClient::event signal and wait for it to be
- emitted with %G_SOCKET_CLIENT_TLS_HANDSHAKING, which will give you
- a chance to see the #GTlsClientConnection before the handshake
- starts.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="tls" transfer-ownership="none">
- <doc xml:space="preserve">whether to use TLS</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_tls_validation_flags"
- c:identifier="g_socket_client_set_tls_validation_flags"
- version="2.28">
- <doc xml:space="preserve">Sets the TLS validation flags used when creating TLS connections
- via @client. The default value is %G_TLS_CERTIFICATE_VALIDATE_ALL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="client" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketClient.</doc>
- <type name="SocketClient" c:type="GSocketClient*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the validation flags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </method>
- <property name="enable-proxy"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="family"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="SocketFamily"/>
- </property>
- <property name="local-address"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="SocketAddress"/>
- </property>
- <property name="protocol"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="SocketProtocol"/>
- </property>
- <property name="proxy-resolver"
- version="2.36"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The proxy resolver to use</doc>
- <type name="ProxyResolver"/>
- </property>
- <property name="timeout"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </property>
- <property name="tls"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="tls-validation-flags"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="TlsCertificateFlags"/>
- </property>
- <property name="type"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="SocketType"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="SocketClientPrivate" c:type="GSocketClientPrivate*"/>
- </field>
- <glib:signal name="event" when="last" version="2.32">
- <doc xml:space="preserve">Emitted when @client's activity on @connectable changes state.
- Among other things, this can be used to provide progress
- information about a network connection in the UI. The meanings of
- the different @event values are as follows:
- - %G_SOCKET_CLIENT_RESOLVING: @client is about to look up @connectable
- in DNS. @connection will be %NULL.
- - %G_SOCKET_CLIENT_RESOLVED: @client has successfully resolved
- @connectable in DNS. @connection will be %NULL.
- - %G_SOCKET_CLIENT_CONNECTING: @client is about to make a connection
- to a remote host; either a proxy server or the destination server
- itself. @connection is the #GSocketConnection, which is not yet
- connected. Since GLib 2.40, you can access the remote
- address via g_socket_connection_get_remote_address().
- - %G_SOCKET_CLIENT_CONNECTED: @client has successfully connected
- to a remote host. @connection is the connected #GSocketConnection.
- - %G_SOCKET_CLIENT_PROXY_NEGOTIATING: @client is about to negotiate
- with a proxy to get it to connect to @connectable. @connection is
- the #GSocketConnection to the proxy server.
- - %G_SOCKET_CLIENT_PROXY_NEGOTIATED: @client has negotiated a
- connection to @connectable through a proxy server. @connection is
- the stream returned from g_proxy_connect(), which may or may not
- be a #GSocketConnection.
- - %G_SOCKET_CLIENT_TLS_HANDSHAKING: @client is about to begin a TLS
- handshake. @connection is a #GTlsClientConnection.
- - %G_SOCKET_CLIENT_TLS_HANDSHAKED: @client has successfully completed
- the TLS handshake. @connection is a #GTlsClientConnection.
- - %G_SOCKET_CLIENT_COMPLETE: @client has either successfully connected
- to @connectable (in which case @connection is the #GSocketConnection
- that it will be returning to the caller) or has failed (in which
- case @connection is %NULL and the client is about to return an error).
- Each event except %G_SOCKET_CLIENT_COMPLETE may be emitted
- multiple times (or not at all) for a given connectable (in
- particular, if @client ends up attempting to connect to more than
- one address). However, if @client emits the #GSocketClient::event
- signal at all for a given connectable, that it will always emit
- it with %G_SOCKET_CLIENT_COMPLETE when it is done.
- Note that there may be additional #GSocketClientEvent values in
- the future; unrecognized @event values should be ignored.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">the event that is occurring</doc>
- <type name="SocketClientEvent"/>
- </parameter>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">the #GSocketConnectable that @event is occurring on</doc>
- <type name="SocketConnectable"/>
- </parameter>
- <parameter name="connection"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the current representation of the connection</doc>
- <type name="IOStream"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="SocketClientClass"
- c:type="GSocketClientClass"
- glib:is-gtype-struct-for="SocketClient">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="event">
- <callback name="event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="client" transfer-ownership="none">
- <type name="SocketClient" c:type="GSocketClient*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="SocketClientEvent" c:type="GSocketClientEvent"/>
- </parameter>
- <parameter name="connectable" transfer-ownership="none">
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <enumeration name="SocketClientEvent"
- version="2.32"
- glib:type-name="GSocketClientEvent"
- glib:get-type="g_socket_client_event_get_type"
- c:type="GSocketClientEvent">
- <doc xml:space="preserve">Describes an event occurring on a #GSocketClient. See the
- #GSocketClient::event signal for more details.
- Additional values may be added to this type in the future.</doc>
- <member name="resolving"
- value="0"
- c:identifier="G_SOCKET_CLIENT_RESOLVING"
- glib:nick="resolving">
- <doc xml:space="preserve">The client is doing a DNS lookup.</doc>
- </member>
- <member name="resolved"
- value="1"
- c:identifier="G_SOCKET_CLIENT_RESOLVED"
- glib:nick="resolved">
- <doc xml:space="preserve">The client has completed a DNS lookup.</doc>
- </member>
- <member name="connecting"
- value="2"
- c:identifier="G_SOCKET_CLIENT_CONNECTING"
- glib:nick="connecting">
- <doc xml:space="preserve">The client is connecting to a remote
- host (either a proxy or the destination server).</doc>
- </member>
- <member name="connected"
- value="3"
- c:identifier="G_SOCKET_CLIENT_CONNECTED"
- glib:nick="connected">
- <doc xml:space="preserve">The client has connected to a remote
- host.</doc>
- </member>
- <member name="proxy_negotiating"
- value="4"
- c:identifier="G_SOCKET_CLIENT_PROXY_NEGOTIATING"
- glib:nick="proxy-negotiating">
- <doc xml:space="preserve">The client is negotiating
- with a proxy to connect to the destination server.</doc>
- </member>
- <member name="proxy_negotiated"
- value="5"
- c:identifier="G_SOCKET_CLIENT_PROXY_NEGOTIATED"
- glib:nick="proxy-negotiated">
- <doc xml:space="preserve">The client has negotiated
- with the proxy server.</doc>
- </member>
- <member name="tls_handshaking"
- value="6"
- c:identifier="G_SOCKET_CLIENT_TLS_HANDSHAKING"
- glib:nick="tls-handshaking">
- <doc xml:space="preserve">The client is performing a
- TLS handshake.</doc>
- </member>
- <member name="tls_handshaked"
- value="7"
- c:identifier="G_SOCKET_CLIENT_TLS_HANDSHAKED"
- glib:nick="tls-handshaked">
- <doc xml:space="preserve">The client has performed a
- TLS handshake.</doc>
- </member>
- <member name="complete"
- value="8"
- c:identifier="G_SOCKET_CLIENT_COMPLETE"
- glib:nick="complete">
- <doc xml:space="preserve">The client is done with a particular
- #GSocketConnectable.</doc>
- </member>
- </enumeration>
- <record name="SocketClientPrivate"
- c:type="GSocketClientPrivate"
- disguised="1">
- </record>
- <interface name="SocketConnectable"
- c:symbol-prefix="socket_connectable"
- c:type="GSocketConnectable"
- glib:type-name="GSocketConnectable"
- glib:get-type="g_socket_connectable_get_type"
- glib:type-struct="SocketConnectableIface">
- <doc xml:space="preserve">Objects that describe one or more potential socket endpoints
- implement #GSocketConnectable. Callers can then use
- g_socket_connectable_enumerate() to get a #GSocketAddressEnumerator
- to try out each socket address in turn until one succeeds, as shown
- in the sample code below.
- |[<!-- language="C" -->
- MyConnectionType *
- connect_to_host (const char *hostname,
- guint16 port,
- GCancellable *cancellable,
- GError **error)
- {
- MyConnection *conn = NULL;
- GSocketConnectable *addr;
- GSocketAddressEnumerator *enumerator;
- GSocketAddress *sockaddr;
- GError *conn_error = NULL;
- addr = g_network_address_new (hostname, port);
- enumerator = g_socket_connectable_enumerate (addr);
- g_object_unref (addr);
- // Try each sockaddr until we succeed. Record the first connection error,
- // but not any further ones (since they'll probably be basically the same
- // as the first).
- while (!conn && (sockaddr = g_socket_address_enumerator_next (enumerator, cancellable, error))
- {
- conn = connect_to_sockaddr (sockaddr, conn_error ? NULL : &conn_error);
- g_object_unref (sockaddr);
- }
- g_object_unref (enumerator);
- if (conn)
- {
- if (conn_error)
- {
- // We couldn't connect to the first address, but we succeeded
- // in connecting to a later address.
- g_error_free (conn_error);
- }
- return conn;
- }
- else if (error)
- {
- /// Either initial lookup failed, or else the caller cancelled us.
- if (conn_error)
- g_error_free (conn_error);
- return NULL;
- }
- else
- {
- g_error_propagate (error, conn_error);
- return NULL;
- }
- }
- ]|</doc>
- <virtual-method name="enumerate" invoker="enumerate" version="2.22">
- <doc xml:space="preserve">Creates a #GSocketAddressEnumerator for @connectable.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddressEnumerator.</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="proxy_enumerate"
- invoker="proxy_enumerate"
- version="2.26">
- <doc xml:space="preserve">Creates a #GSocketAddressEnumerator for @connectable that will
- return #GProxyAddresses for addresses that you must connect
- to via a proxy.
- If @connectable does not implement
- g_socket_connectable_proxy_enumerate(), this will fall back to
- calling g_socket_connectable_enumerate().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddressEnumerator.</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="to_string" invoker="to_string" version="2.48">
- <doc xml:space="preserve">Format a #GSocketConnectable as a string. This is a human-readable format for
- use in debugging output, and is not a stable serialization format. It is not
- suitable for use in user interfaces as it exposes too much information for a
- user.
- If the #GSocketConnectable implementation does not support string formatting,
- the implementation’s type name will be returned as a fallback.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the formatted string</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="enumerate"
- c:identifier="g_socket_connectable_enumerate"
- version="2.22">
- <doc xml:space="preserve">Creates a #GSocketAddressEnumerator for @connectable.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddressEnumerator.</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="proxy_enumerate"
- c:identifier="g_socket_connectable_proxy_enumerate"
- version="2.26">
- <doc xml:space="preserve">Creates a #GSocketAddressEnumerator for @connectable that will
- return #GProxyAddresses for addresses that you must connect
- to via a proxy.
- If @connectable does not implement
- g_socket_connectable_proxy_enumerate(), this will fall back to
- calling g_socket_connectable_enumerate().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddressEnumerator.</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="g_socket_connectable_to_string"
- version="2.48">
- <doc xml:space="preserve">Format a #GSocketConnectable as a string. This is a human-readable format for
- use in debugging output, and is not a stable serialization format. It is not
- suitable for use in user interfaces as it exposes too much information for a
- user.
- If the #GSocketConnectable implementation does not support string formatting,
- the implementation’s type name will be returned as a fallback.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the formatted string</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <record name="SocketConnectableIface"
- c:type="GSocketConnectableIface"
- glib:is-gtype-struct-for="SocketConnectable">
- <doc xml:space="preserve">Provides an interface for returning a #GSocketAddressEnumerator
- and #GProxyAddressEnumerator</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="enumerate">
- <callback name="enumerate">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddressEnumerator.</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </return-value>
- <parameters>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="proxy_enumerate">
- <callback name="proxy_enumerate">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketAddressEnumerator.</doc>
- <type name="SocketAddressEnumerator"
- c:type="GSocketAddressEnumerator*"/>
- </return-value>
- <parameters>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="to_string">
- <callback name="to_string">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the formatted string</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="connectable" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="SocketConnection"
- c:symbol-prefix="socket_connection"
- c:type="GSocketConnection"
- version="2.22"
- parent="IOStream"
- glib:type-name="GSocketConnection"
- glib:get-type="g_socket_connection_get_type"
- glib:type-struct="SocketConnectionClass">
- <doc xml:space="preserve">#GSocketConnection is a #GIOStream for a connected socket. They
- can be created either by #GSocketClient when connecting to a host,
- or by #GSocketListener when accepting a new client.
- The type of the #GSocketConnection object returned from these calls
- depends on the type of the underlying socket that is in use. For
- instance, for a TCP/IP connection it will be a #GTcpConnection.
- Choosing what type of object to construct is done with the socket
- connection factory, and it is possible for 3rd parties to register
- custom socket connection types for specific combination of socket
- family/type/protocol using g_socket_connection_factory_register_type().
- To close a #GSocketConnection, use g_io_stream_close(). Closing both
- substreams of the #GIOStream separately will not close the underlying
- #GSocket.</doc>
- <function name="factory_lookup_type"
- c:identifier="g_socket_connection_factory_lookup_type"
- version="2.22">
- <doc xml:space="preserve">Looks up the #GType to be used when creating socket connections on
- sockets with the specified @family, @type and @protocol_id.
- If no type is registered, the #GSocketConnection base type is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GType</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketFamily</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketType</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </parameter>
- <parameter name="protocol_id" transfer-ownership="none">
- <doc xml:space="preserve">a protocol id</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="factory_register_type"
- c:identifier="g_socket_connection_factory_register_type"
- version="2.22">
- <doc xml:space="preserve">Looks up the #GType to be used when creating socket connections on
- sockets with the specified @family, @type and @protocol.
- If no type is registered, the #GSocketConnection base type is returned.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="g_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType, inheriting from %G_TYPE_SOCKET_CONNECTION</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="family" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketFamily</doc>
- <type name="SocketFamily" c:type="GSocketFamily"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketType</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">a protocol id</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <method name="connect"
- c:identifier="g_socket_connection_connect"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Connect @connection to the specified remote address.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the connection succeeded, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress specifying the remote address.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_async"
- c:identifier="g_socket_connection_connect_async"
- version="2.32">
- <doc xml:space="preserve">Asynchronously connect @connection to the specified remote address.
- This clears the #GSocket:blocking flag on @connection's underlying
- socket if it is currently set.
- Use g_socket_connection_connect_finish() to retrieve the result.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress specifying the remote address.</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a %GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="connect_finish"
- c:identifier="g_socket_connection_connect_finish"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Gets the result of a g_socket_connection_connect_async() call.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the connection succeeded, %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_local_address"
- c:identifier="g_socket_connection_get_local_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Try to get the local address of a socket connection.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_remote_address"
- c:identifier="g_socket_connection_get_remote_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Try to get the remote address of a socket connection.
- Since GLib 2.40, when used with g_socket_client_connect() or
- g_socket_client_connect_async(), during emission of
- %G_SOCKET_CLIENT_CONNECTING, this function will return the remote
- address that will be used for the connection. This allows
- applications to print e.g. "Connecting to example.com
- (10.42.77.3)...".</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketAddress or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_socket"
- c:identifier="g_socket_connection_get_socket"
- version="2.22">
- <doc xml:space="preserve">Gets the underlying #GSocket object of the connection.
- This can be useful if you want to do something unusual on it
- not supported by the #GSocketConnection APIs.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocket or %NULL on error.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_connected"
- c:identifier="g_socket_connection_is_connected"
- version="2.32">
- <doc xml:space="preserve">Checks if @connection is connected. This is equivalent to calling
- g_socket_is_connected() on @connection's underlying #GSocket.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @connection is connected</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnection</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="socket"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="Socket"/>
- </property>
- <field name="parent_instance">
- <type name="IOStream" c:type="GIOStream"/>
- </field>
- <field name="priv">
- <type name="SocketConnectionPrivate"
- c:type="GSocketConnectionPrivate*"/>
- </field>
- </class>
- <record name="SocketConnectionClass"
- c:type="GSocketConnectionClass"
- glib:is-gtype-struct-for="SocketConnection">
- <field name="parent_class">
- <type name="IOStreamClass" c:type="GIOStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="SocketConnectionPrivate"
- c:type="GSocketConnectionPrivate"
- disguised="1">
- </record>
- <class name="SocketControlMessage"
- c:symbol-prefix="socket_control_message"
- c:type="GSocketControlMessage"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GSocketControlMessage"
- glib:get-type="g_socket_control_message_get_type"
- glib:type-struct="SocketControlMessageClass">
- <doc xml:space="preserve">A #GSocketControlMessage is a special-purpose utility message that
- can be sent to or received from a #GSocket. These types of
- messages are often called "ancillary data".
- The message can represent some sort of special instruction to or
- information from the socket or can represent a special kind of
- transfer to the peer (for example, sending a file descriptor over
- a UNIX socket).
- These messages are sent with g_socket_send_message() and received
- with g_socket_receive_message().
- To extend the set of control message that can be sent, subclass this
- class and override the get_size, get_level, get_type and serialize
- methods.
- To extend the set of control messages that can be received, subclass
- this class and implement the deserialize method. Also, make sure your
- class is registered with the GType typesystem before calling
- g_socket_receive_message() to read such a message.</doc>
- <function name="deserialize"
- c:identifier="g_socket_control_message_deserialize"
- version="2.22">
- <doc xml:space="preserve">Tries to deserialize a socket control message of a given
- @level and @type. This will ask all known (to GType) subclasses
- of #GSocketControlMessage if they can understand this kind
- of message and if so deserialize it into a #GSocketControlMessage.
- If there is no implementation for this kind of control message, %NULL
- will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the deserialized message or %NULL</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">a socket level</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a socket control message type for the given @level</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">the size of the data in bytes</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">pointer to the message data</doc>
- <array length="2" zero-terminated="0" c:type="gpointer">
- <type name="guint8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="get_level" invoker="get_level" version="2.22">
- <doc xml:space="preserve">Returns the "level" (i.e. the originating protocol) of the control message.
- This is often SOL_SOCKET.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer describing the level</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_size" invoker="get_size" version="2.22">
- <doc xml:space="preserve">Returns the space required for the control message, not including
- headers or alignment.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of bytes required.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_type">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="serialize" invoker="serialize" version="2.22">
- <doc xml:space="preserve">Converts the data in the message to bytes placed in the
- message.
- @data is guaranteed to have enough space to fit the size
- returned by g_socket_control_message_get_size() on this
- object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">A buffer to write data to</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_level"
- c:identifier="g_socket_control_message_get_level"
- version="2.22">
- <doc xml:space="preserve">Returns the "level" (i.e. the originating protocol) of the control message.
- This is often SOL_SOCKET.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer describing the level</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_msg_type"
- c:identifier="g_socket_control_message_get_msg_type"
- version="2.22">
- <doc xml:space="preserve">Returns the protocol specific type of the control message.
- For instance, for UNIX fd passing this would be SCM_RIGHTS.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer describing the type of control message</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_size"
- c:identifier="g_socket_control_message_get_size"
- version="2.22">
- <doc xml:space="preserve">Returns the space required for the control message, not including
- headers or alignment.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of bytes required.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="serialize"
- c:identifier="g_socket_control_message_serialize"
- version="2.22">
- <doc xml:space="preserve">Converts the data in the message to bytes placed in the
- message.
- @data is guaranteed to have enough space to fit the size
- returned by g_socket_control_message_get_size() on this
- object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </instance-parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">A buffer to write data to</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="SocketControlMessagePrivate"
- c:type="GSocketControlMessagePrivate*"/>
- </field>
- </class>
- <record name="SocketControlMessageClass"
- c:type="GSocketControlMessageClass"
- glib:is-gtype-struct-for="SocketControlMessage">
- <doc xml:space="preserve">Class structure for #GSocketControlMessage.</doc>
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_size">
- <callback name="get_size">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of bytes required.</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage"
- c:type="GSocketControlMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_level">
- <callback name="get_level">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an integer describing the level</doc>
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage"
- c:type="GSocketControlMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_type">
- <callback name="get_type">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="int"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="SocketControlMessage"
- c:type="GSocketControlMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="serialize">
- <callback name="serialize">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketControlMessage</doc>
- <type name="SocketControlMessage"
- c:type="GSocketControlMessage*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">A buffer to write data to</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="deserialize" introspectable="0">
- <callback name="deserialize" introspectable="0">
- <return-value>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="SocketControlMessagePrivate"
- c:type="GSocketControlMessagePrivate"
- disguised="1">
- </record>
- <enumeration name="SocketFamily"
- version="2.22"
- glib:type-name="GSocketFamily"
- glib:get-type="g_socket_family_get_type"
- c:type="GSocketFamily">
- <doc xml:space="preserve">The protocol family of a #GSocketAddress. (These values are
- identical to the system defines %AF_INET, %AF_INET6 and %AF_UNIX,
- if available.)</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_SOCKET_FAMILY_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">no address family</doc>
- </member>
- <member name="unix"
- value="1"
- c:identifier="G_SOCKET_FAMILY_UNIX"
- glib:nick="unix">
- <doc xml:space="preserve">the UNIX domain family</doc>
- </member>
- <member name="ipv4"
- value="2"
- c:identifier="G_SOCKET_FAMILY_IPV4"
- glib:nick="ipv4">
- <doc xml:space="preserve">the IPv4 family</doc>
- </member>
- <member name="ipv6"
- value="10"
- c:identifier="G_SOCKET_FAMILY_IPV6"
- glib:nick="ipv6">
- <doc xml:space="preserve">the IPv6 family</doc>
- </member>
- </enumeration>
- <class name="SocketListener"
- c:symbol-prefix="socket_listener"
- c:type="GSocketListener"
- version="2.22"
- parent="GObject.Object"
- glib:type-name="GSocketListener"
- glib:get-type="g_socket_listener_get_type"
- glib:type-struct="SocketListenerClass">
- <doc xml:space="preserve">A #GSocketListener is an object that keeps track of a set
- of server sockets and helps you accept sockets from any of the
- socket, either sync or async.
- If you want to implement a network server, also look at #GSocketService
- and #GThreadedSocketService which are subclass of #GSocketListener
- that makes this even easier.</doc>
- <constructor name="new"
- c:identifier="g_socket_listener_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GSocketListener with no sockets to listen for.
- New listeners can be added with e.g. g_socket_listener_add_address()
- or g_socket_listener_add_inet_port().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketListener.</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </return-value>
- </constructor>
- <virtual-method name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="SocketListenerEvent" c:type="GSocketListenerEvent*"/>
- </parameter>
- <parameter name="socket" transfer-ownership="none">
- <type name="Socket" c:type="GSocket*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="accept"
- c:identifier="g_socket_listener_accept"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Blocks waiting for a client to connect to any of the sockets added
- to the listener. Returns a #GSocketConnection for the socket that was
- accepted.
- If @source_object is not %NULL it will be filled out with the source
- object specified when the corresponding socket or address was added
- to the listener.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="source_object"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location where #GObject pointer will be stored, or %NULL</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="accept_async"
- c:identifier="g_socket_listener_accept_async"
- version="2.22">
- <doc xml:space="preserve">This is the asynchronous version of g_socket_listener_accept().
- When the operation is finished @callback will be
- called. You can then call g_socket_listener_accept_socket()
- to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="accept_finish"
- c:identifier="g_socket_listener_accept_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an async accept operation. See g_socket_listener_accept_async()</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocketConnection on success, %NULL on error.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="source_object"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Optional #GObject identifying this source</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- </parameters>
- </method>
- <method name="accept_socket"
- c:identifier="g_socket_listener_accept_socket"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Blocks waiting for a client to connect to any of the sockets added
- to the listener. Returns the #GSocket that was accepted.
- If you want to accept the high-level #GSocketConnection, not a #GSocket,
- which is often the case, then you should use g_socket_listener_accept()
- instead.
- If @source_object is not %NULL it will be filled out with the source
- object specified when the corresponding socket or address was added
- to the listener.
- If @cancellable is not %NULL, then the operation can be cancelled by
- triggering the cancellable object from another thread. If the operation
- was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocket on success, %NULL on error.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="source_object"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location where #GObject pointer will be stored, or %NULL.</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="accept_socket_async"
- c:identifier="g_socket_listener_accept_socket_async"
- version="2.22">
- <doc xml:space="preserve">This is the asynchronous version of g_socket_listener_accept_socket().
- When the operation is finished @callback will be
- called. You can then call g_socket_listener_accept_socket_finish()
- to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="accept_socket_finish"
- c:identifier="g_socket_listener_accept_socket_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes an async accept operation. See g_socket_listener_accept_socket_async()</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GSocket on success, %NULL on error.</doc>
- <type name="Socket" c:type="GSocket*"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="source_object"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Optional #GObject identifying this source</doc>
- <type name="GObject.Object" c:type="GObject**"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_address"
- c:identifier="g_socket_listener_add_address"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Creates a socket of type @type and protocol @protocol, binds
- it to @address and adds it to the set of sockets we're accepting
- sockets from.
- Note that adding an IPv6 address, depending on the platform,
- may or may not result in a listener that also accepts IPv4
- connections. For more deterministic behavior, see
- g_socket_listener_add_inet_port().
- @source_object will be passed out in the various calls
- to accept to identify this particular source, which is
- useful if you're listening on multiple addresses and do
- different things depending on what address is connected to.
- If successful and @effective_address is non-%NULL then it will
- be set to the address that the binding actually occurred at. This
- is helpful for determining the port number that was used for when
- requesting a binding to port 0 (ie: "any port"). This address, if
- requested, belongs to the caller and must be freed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketType</doc>
- <type name="SocketType" c:type="GSocketType"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketProtocol</doc>
- <type name="SocketProtocol" c:type="GSocketProtocol"/>
- </parameter>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional #GObject identifying this source</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="effective_address"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">location to store the address that was bound to, or %NULL.</doc>
- <type name="SocketAddress" c:type="GSocketAddress**"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_any_inet_port"
- c:identifier="g_socket_listener_add_any_inet_port"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">Listens for TCP connections on any available port number for both
- IPv6 and IPv4 (if each is available).
- This is useful if you need to have a socket for incoming connections
- but don't care about the specific port number.
- @source_object will be passed out in the various calls
- to accept to identify this particular source, which is
- useful if you're listening on multiple addresses and do
- different things depending on what address is connected to.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the port number, or 0 in case of failure.</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional #GObject identifying this source</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_inet_port"
- c:identifier="g_socket_listener_add_inet_port"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Helper function for g_socket_listener_add_address() that
- creates a TCP/IP socket listening on IPv4 and IPv6 (if
- supported) on the specified port on all interfaces.
- @source_object will be passed out in the various calls
- to accept to identify this particular source, which is
- useful if you're listening on multiple addresses and do
- different things depending on what address is connected to.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">an IP port number (non-zero)</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional #GObject identifying this source</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_socket"
- c:identifier="g_socket_listener_add_socket"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Adds @socket to the set of sockets that we try to accept
- new clients from. The socket must be bound to a local
- address and listened to.
- @source_object will be passed out in the various calls
- to accept to identify this particular source, which is
- useful if you're listening on multiple addresses and do
- different things depending on what address is connected to.
- The @socket will not be automatically closed when the @listener is finalized
- unless the listener held the final reference to the socket. Before GLib 2.42,
- the @socket was automatically closed on finalization of the @listener, even
- if references to it were held elsewhere.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">a listening #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </parameter>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Optional #GObject identifying this source</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="close"
- c:identifier="g_socket_listener_close"
- version="2.22">
- <doc xml:space="preserve">Closes all the sockets in the listener.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_backlog"
- c:identifier="g_socket_listener_set_backlog"
- version="2.22">
- <doc xml:space="preserve">Sets the listen backlog on the sockets in the listener.
- See g_socket_set_listen_backlog() for details</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="listener" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketListener</doc>
- <type name="SocketListener" c:type="GSocketListener*"/>
- </instance-parameter>
- <parameter name="listen_backlog" transfer-ownership="none">
- <doc xml:space="preserve">an integer</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <property name="listen-backlog"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="SocketListenerPrivate" c:type="GSocketListenerPrivate*"/>
- </field>
- <glib:signal name="event" when="last" version="2.46">
- <doc xml:space="preserve">Emitted when @listener's activity on @socket changes state.
- Note that when @listener is used to listen on both IPv4 and
- IPv6, a separate set of signals will be emitted for each, and
- the order they happen in is undefined.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">the event that is occurring</doc>
- <type name="SocketListenerEvent"/>
- </parameter>
- <parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GSocket the event is occurring on</doc>
- <type name="Socket"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="SocketListenerClass"
- c:type="GSocketListenerClass"
- glib:is-gtype-struct-for="SocketListener">
- <doc xml:space="preserve">Class structure for #GSocketListener.</doc>
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="changed">
- <callback name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="listener" transfer-ownership="none">
- <type name="SocketListener" c:type="GSocketListener*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="event">
- <callback name="event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="listener" transfer-ownership="none">
- <type name="SocketListener" c:type="GSocketListener*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="SocketListenerEvent" c:type="GSocketListenerEvent*"/>
- </parameter>
- <parameter name="socket" transfer-ownership="none">
- <type name="Socket" c:type="GSocket*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <enumeration name="SocketListenerEvent"
- version="2.46"
- glib:type-name="GSocketListenerEvent"
- glib:get-type="g_socket_listener_event_get_type"
- c:type="GSocketListenerEvent">
- <doc xml:space="preserve">Describes an event occurring on a #GSocketListener. See the
- #GSocketListener::event signal for more details.
- Additional values may be added to this type in the future.</doc>
- <member name="binding"
- value="0"
- c:identifier="G_SOCKET_LISTENER_BINDING"
- glib:nick="binding">
- <doc xml:space="preserve">The listener is about to bind a socket.</doc>
- </member>
- <member name="bound"
- value="1"
- c:identifier="G_SOCKET_LISTENER_BOUND"
- glib:nick="bound">
- <doc xml:space="preserve">The listener has bound a socket.</doc>
- </member>
- <member name="listening"
- value="2"
- c:identifier="G_SOCKET_LISTENER_LISTENING"
- glib:nick="listening">
- <doc xml:space="preserve">The listener is about to start
- listening on this socket.</doc>
- </member>
- <member name="listened"
- value="3"
- c:identifier="G_SOCKET_LISTENER_LISTENED"
- glib:nick="listened">
- <doc xml:space="preserve">The listener is now listening on
- this socket.</doc>
- </member>
- </enumeration>
- <record name="SocketListenerPrivate"
- c:type="GSocketListenerPrivate"
- disguised="1">
- </record>
- <bitfield name="SocketMsgFlags"
- version="2.22"
- glib:type-name="GSocketMsgFlags"
- glib:get-type="g_socket_msg_flags_get_type"
- c:type="GSocketMsgFlags">
- <doc xml:space="preserve">Flags used in g_socket_receive_message() and g_socket_send_message().
- The flags listed in the enum are some commonly available flags, but the
- values used for them are the same as on the platform, and any other flags
- are passed in/out as is. So to use a platform specific flag, just include
- the right system header and pass in the flag.</doc>
- <member name="none"
- value="0"
- c:identifier="G_SOCKET_MSG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags.</doc>
- </member>
- <member name="oob"
- value="1"
- c:identifier="G_SOCKET_MSG_OOB"
- glib:nick="oob">
- <doc xml:space="preserve">Request to send/receive out of band data.</doc>
- </member>
- <member name="peek"
- value="2"
- c:identifier="G_SOCKET_MSG_PEEK"
- glib:nick="peek">
- <doc xml:space="preserve">Read data from the socket without removing it from
- the queue.</doc>
- </member>
- <member name="dontroute"
- value="4"
- c:identifier="G_SOCKET_MSG_DONTROUTE"
- glib:nick="dontroute">
- <doc xml:space="preserve">Don't use a gateway to send out the packet,
- only send to hosts on directly connected networks.</doc>
- </member>
- </bitfield>
- <record name="SocketPrivate" c:type="GSocketPrivate" disguised="1">
- </record>
- <enumeration name="SocketProtocol"
- version="2.22"
- glib:type-name="GSocketProtocol"
- glib:get-type="g_socket_protocol_get_type"
- c:type="GSocketProtocol">
- <doc xml:space="preserve">A protocol identifier is specified when creating a #GSocket, which is a
- family/type specific identifier, where 0 means the default protocol for
- the particular family/type.
- This enum contains a set of commonly available and used protocols. You
- can also pass any other identifiers handled by the platform in order to
- use protocols not listed here.</doc>
- <member name="unknown"
- value="-1"
- c:identifier="G_SOCKET_PROTOCOL_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">The protocol type is unknown</doc>
- </member>
- <member name="default"
- value="0"
- c:identifier="G_SOCKET_PROTOCOL_DEFAULT"
- glib:nick="default">
- <doc xml:space="preserve">The default protocol for the family/type</doc>
- </member>
- <member name="tcp"
- value="6"
- c:identifier="G_SOCKET_PROTOCOL_TCP"
- glib:nick="tcp">
- <doc xml:space="preserve">TCP over IP</doc>
- </member>
- <member name="udp"
- value="17"
- c:identifier="G_SOCKET_PROTOCOL_UDP"
- glib:nick="udp">
- <doc xml:space="preserve">UDP over IP</doc>
- </member>
- <member name="sctp"
- value="132"
- c:identifier="G_SOCKET_PROTOCOL_SCTP"
- glib:nick="sctp">
- <doc xml:space="preserve">SCTP over IP</doc>
- </member>
- </enumeration>
- <class name="SocketService"
- c:symbol-prefix="socket_service"
- c:type="GSocketService"
- version="2.22"
- parent="SocketListener"
- glib:type-name="GSocketService"
- glib:get-type="g_socket_service_get_type"
- glib:type-struct="SocketServiceClass">
- <doc xml:space="preserve">A #GSocketService is an object that represents a service that
- is provided to the network or over local sockets. When a new
- connection is made to the service the #GSocketService::incoming
- signal is emitted.
- A #GSocketService is a subclass of #GSocketListener and you need
- to add the addresses you want to accept connections on with the
- #GSocketListener APIs.
- There are two options for implementing a network service based on
- #GSocketService. The first is to create the service using
- g_socket_service_new() and to connect to the #GSocketService::incoming
- signal. The second is to subclass #GSocketService and override the
- default signal handler implementation.
- In either case, the handler must immediately return, or else it
- will block additional incoming connections from being serviced.
- If you are interested in writing connection handlers that contain
- blocking code then see #GThreadedSocketService.
- The socket service runs on the main loop of the
- [thread-default context][g-main-context-push-thread-default-context]
- of the thread it is created in, and is not
- threadsafe in general. However, the calls to start and stop the
- service are thread-safe so these can be used from threads that
- handle incoming clients.</doc>
- <constructor name="new"
- c:identifier="g_socket_service_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GSocketService with no sockets to listen for.
- New listeners can be added with e.g. g_socket_listener_add_address()
- or g_socket_listener_add_inet_port().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketService.</doc>
- <type name="SocketService" c:type="GSocketService*"/>
- </return-value>
- </constructor>
- <virtual-method name="incoming">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="service" transfer-ownership="none">
- <type name="SocketService" c:type="GSocketService*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </parameter>
- <parameter name="source_object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="is_active"
- c:identifier="g_socket_service_is_active"
- version="2.22">
- <doc xml:space="preserve">Check whether the service is active or not. An active
- service will accept new clients that connect, while
- a non-active service will let connecting clients queue
- up until the service is started.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the service is active, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketService</doc>
- <type name="SocketService" c:type="GSocketService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="start"
- c:identifier="g_socket_service_start"
- version="2.22">
- <doc xml:space="preserve">Starts the service, i.e. start accepting connections
- from the added sockets when the mainloop runs.
- This call is thread-safe, so it may be called from a thread
- handling an incoming client request.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketService</doc>
- <type name="SocketService" c:type="GSocketService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stop" c:identifier="g_socket_service_stop" version="2.22">
- <doc xml:space="preserve">Stops the service, i.e. stops accepting connections
- from the added sockets when the mainloop runs.
- This call is thread-safe, so it may be called from a thread
- handling an incoming client request.
- Note that this only stops accepting new connections; it does not
- close the listening sockets, and you can call
- g_socket_service_start() again later to begin listening again. To
- close the listening sockets, call g_socket_listener_close(). (This
- will happen automatically when the #GSocketService is finalized.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="service" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketService</doc>
- <type name="SocketService" c:type="GSocketService*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="active"
- version="2.46"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether the service is currently accepting connections.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="SocketListener" c:type="GSocketListener"/>
- </field>
- <field name="priv">
- <type name="SocketServicePrivate" c:type="GSocketServicePrivate*"/>
- </field>
- <glib:signal name="incoming" when="last" version="2.22">
- <doc xml:space="preserve">The ::incoming signal is emitted when a new incoming connection
- to @service needs to be handled. The handler must initiate the
- handling of @connection, but may not block; in essence,
- asynchronous operations must be used.
- @connection will be unreffed once the signal handler returns,
- so you need to ref it yourself if you are planning to use it.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop other handlers from being called</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a new #GSocketConnection object</doc>
- <type name="SocketConnection"/>
- </parameter>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the source_object passed to
- g_socket_listener_add_address()</doc>
- <type name="GObject.Object"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="SocketServiceClass"
- c:type="GSocketServiceClass"
- glib:is-gtype-struct-for="SocketService">
- <doc xml:space="preserve">Class structure for #GSocketService.</doc>
- <field name="parent_class">
- <type name="SocketListenerClass" c:type="GSocketListenerClass"/>
- </field>
- <field name="incoming">
- <callback name="incoming">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="service" transfer-ownership="none">
- <type name="SocketService" c:type="GSocketService*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </parameter>
- <parameter name="source_object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="SocketServicePrivate"
- c:type="GSocketServicePrivate"
- disguised="1">
- </record>
- <callback name="SocketSourceFunc"
- c:type="GSocketSourceFunc"
- version="2.22">
- <doc xml:space="preserve">This is the function type of the callback used for the #GSource
- returned by g_socket_create_source().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">it should return %FALSE if the source should be removed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GSocket</doc>
- <type name="Socket" c:type="GSocket*"/>
- </parameter>
- <parameter name="condition" transfer-ownership="none">
- <doc xml:space="preserve">the current condition at the source fired.</doc>
- <type name="GLib.IOCondition" c:type="GIOCondition"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <doc xml:space="preserve">data passed in by the user.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="SocketType"
- version="2.22"
- glib:type-name="GSocketType"
- glib:get-type="g_socket_type_get_type"
- c:type="GSocketType">
- <doc xml:space="preserve">Flags used when creating a #GSocket. Some protocols may not implement
- all the socket types.</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_SOCKET_TYPE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">Type unknown or wrong</doc>
- </member>
- <member name="stream"
- value="1"
- c:identifier="G_SOCKET_TYPE_STREAM"
- glib:nick="stream">
- <doc xml:space="preserve">Reliable connection-based byte streams (e.g. TCP).</doc>
- </member>
- <member name="datagram"
- value="2"
- c:identifier="G_SOCKET_TYPE_DATAGRAM"
- glib:nick="datagram">
- <doc xml:space="preserve">Connectionless, unreliable datagram passing.
- (e.g. UDP)</doc>
- </member>
- <member name="seqpacket"
- value="3"
- c:identifier="G_SOCKET_TYPE_SEQPACKET"
- glib:nick="seqpacket">
- <doc xml:space="preserve">Reliable connection-based passing of datagrams
- of fixed maximum length (e.g. SCTP).</doc>
- </member>
- </enumeration>
- <record name="SrvTarget"
- c:type="GSrvTarget"
- glib:type-name="GSrvTarget"
- glib:get-type="g_srv_target_get_type"
- c:symbol-prefix="srv_target">
- <doc xml:space="preserve">SRV (service) records are used by some network protocols to provide
- service-specific aliasing and load-balancing. For example, XMPP
- (Jabber) uses SRV records to locate the XMPP server for a domain;
- rather than connecting directly to "example.com" or assuming a
- specific server hostname like "xmpp.example.com", an XMPP client
- would look up the "xmpp-client" SRV record for "example.com", and
- then connect to whatever host was pointed to by that record.
- You can use g_resolver_lookup_service() or
- g_resolver_lookup_service_async() to find the #GSrvTargets
- for a given service. However, if you are simply planning to connect
- to the remote service, you can use #GNetworkService's
- #GSocketConnectable interface and not need to worry about
- #GSrvTarget at all.</doc>
- <constructor name="new" c:identifier="g_srv_target_new" version="2.22">
- <doc xml:space="preserve">Creates a new #GSrvTarget with the given parameters.
- You should not need to use this; normally #GSrvTargets are
- created by #GResolver.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSrvTarget.</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </return-value>
- <parameters>
- <parameter name="hostname" transfer-ownership="none">
- <doc xml:space="preserve">the host that the service is running on</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="port" transfer-ownership="none">
- <doc xml:space="preserve">the port that the service is running on</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">the target's priority</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- <parameter name="weight" transfer-ownership="none">
- <doc xml:space="preserve">the target's weight</doc>
- <type name="guint16" c:type="guint16"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy" c:identifier="g_srv_target_copy" version="2.22">
- <doc xml:space="preserve">Copies @target</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a copy of @target</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </return-value>
- <parameters>
- <instance-parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">a #GSrvTarget</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="g_srv_target_free" version="2.22">
- <doc xml:space="preserve">Frees @target</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">a #GSrvTarget</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_hostname"
- c:identifier="g_srv_target_get_hostname"
- version="2.22">
- <doc xml:space="preserve">Gets @target's hostname (in ASCII form; if you are going to present
- this to the user, you should use g_hostname_is_ascii_encoded() to
- check if it contains encoded Unicode segments, and use
- g_hostname_to_unicode() to convert it if it does.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@target's hostname</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">a #GSrvTarget</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_port"
- c:identifier="g_srv_target_get_port"
- version="2.22">
- <doc xml:space="preserve">Gets @target's port</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@target's port</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">a #GSrvTarget</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_priority"
- c:identifier="g_srv_target_get_priority"
- version="2.22">
- <doc xml:space="preserve">Gets @target's priority. You should not need to look at this;
- #GResolver already sorts the targets according to the algorithm in
- RFC 2782.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@target's priority</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">a #GSrvTarget</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_weight"
- c:identifier="g_srv_target_get_weight"
- version="2.22">
- <doc xml:space="preserve">Gets @target's weight. You should not need to look at this;
- #GResolver already sorts the targets according to the algorithm in
- RFC 2782.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@target's weight</doc>
- <type name="guint16" c:type="guint16"/>
- </return-value>
- <parameters>
- <instance-parameter name="target" transfer-ownership="none">
- <doc xml:space="preserve">a #GSrvTarget</doc>
- <type name="SrvTarget" c:type="GSrvTarget*"/>
- </instance-parameter>
- </parameters>
- </method>
- <function name="list_sort"
- c:identifier="g_srv_target_list_sort"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Sorts @targets in place according to the algorithm in RFC 2782.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the head of the sorted list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="targets" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GSrvTarget</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </parameter>
- </parameters>
- </function>
- </record>
- <record name="StaticResource" c:type="GStaticResource">
- <doc xml:space="preserve">#GStaticResource is an opaque data structure and can only be accessed
- using the following functions.</doc>
- <field name="data" readable="0" private="1">
- <type name="guint8" c:type="const guint8*"/>
- </field>
- <field name="data_len" readable="0" private="1">
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="resource" readable="0" private="1">
- <type name="Resource" c:type="GResource*"/>
- </field>
- <field name="next" readable="0" private="1">
- <type name="StaticResource" c:type="GStaticResource*"/>
- </field>
- <field name="padding" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <method name="fini" c:identifier="g_static_resource_fini" version="2.32">
- <doc xml:space="preserve">Finalized a GResource initialized by g_static_resource_init().
- This is normally used by code generated by
- [glib-compile-resources][glib-compile-resources]
- and is not typically used by other code.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="static_resource" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a static #GStaticResource</doc>
- <type name="StaticResource" c:type="GStaticResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_resource"
- c:identifier="g_static_resource_get_resource"
- version="2.32">
- <doc xml:space="preserve">Gets the GResource that was registered by a call to g_static_resource_init().
- This is normally used by code generated by
- [glib-compile-resources][glib-compile-resources]
- and is not typically used by other code.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </return-value>
- <parameters>
- <instance-parameter name="static_resource" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a static #GStaticResource</doc>
- <type name="StaticResource" c:type="GStaticResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="init" c:identifier="g_static_resource_init" version="2.32">
- <doc xml:space="preserve">Initializes a GResource from static data using a
- GStaticResource.
- This is normally used by code generated by
- [glib-compile-resources][glib-compile-resources]
- and is not typically used by other code.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="static_resource" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a static #GStaticResource</doc>
- <type name="StaticResource" c:type="GStaticResource*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="Subprocess"
- c:symbol-prefix="subprocess"
- c:type="GSubprocess"
- version="2.40"
- parent="GObject.Object"
- glib:type-name="GSubprocess"
- glib:get-type="g_subprocess_get_type">
- <doc xml:space="preserve">#GSubprocess allows the creation of and interaction with child
- processes.
- Processes can be communicated with using standard GIO-style APIs (ie:
- #GInputStream, #GOutputStream). There are GIO-style APIs to wait for
- process termination (ie: cancellable and with an asynchronous
- variant).
- There is an API to force a process to terminate, as well as a
- race-free API for sending UNIX signals to a subprocess.
- One major advantage that GIO brings over the core GLib library is
- comprehensive API for asynchronous I/O, such
- g_output_stream_splice_async(). This makes GSubprocess
- significantly more powerful and flexible than equivalent APIs in
- some other languages such as the `subprocess.py`
- included with Python. For example, using #GSubprocess one could
- create two child processes, reading standard output from the first,
- processing it, and writing to the input stream of the second, all
- without blocking the main loop.
- A powerful g_subprocess_communicate() API is provided similar to the
- `communicate()` method of `subprocess.py`. This enables very easy
- interaction with a subprocess that has been opened with pipes.
- #GSubprocess defaults to tight control over the file descriptors open
- in the child process, avoiding dangling-fd issues that are caused by
- a simple fork()/exec(). The only open file descriptors in the
- spawned process are ones that were explicitly specified by the
- #GSubprocess API (unless %G_SUBPROCESS_FLAGS_INHERIT_FDS was
- specified).
- #GSubprocess will quickly reap all child processes as they exit,
- avoiding "zombie processes" remaining around for long periods of
- time. g_subprocess_wait() can be used to wait for this to happen,
- but it will happen even without the call being explicitly made.
- As a matter of principle, #GSubprocess has no API that accepts
- shell-style space-separated strings. It will, however, match the
- typical shell behaviour of searching the PATH for executables that do
- not contain a directory separator in their name.
- #GSubprocess attempts to have a very simple API for most uses (ie:
- spawning a subprocess with arguments and support for most typical
- kinds of input and output redirection). See g_subprocess_new(). The
- #GSubprocessLauncher API is provided for more complicated cases
- (advanced types of redirection, environment variable manipulation,
- change of working directory, child setup functions, etc).
- A typical use of #GSubprocess will involve calling
- g_subprocess_new(), followed by g_subprocess_wait_async() or
- g_subprocess_wait(). After the process exits, the status can be
- checked using functions such as g_subprocess_get_if_exited() (which
- are similar to the familiar WIFEXITED-style POSIX macros).</doc>
- <implements name="Initable"/>
- <constructor name="new"
- c:identifier="g_subprocess_new"
- shadowed-by="newv"
- version="2.40"
- introspectable="0">
- <doc xml:space="preserve">Create a new process with the given flags and varargs argument
- list. By default, matching the g_spawn_async() defaults, the
- child's stdin will be set to the system null device, and
- stdout/stderr will be inherited from the parent. You can use
- @flags to control this behavior.
- The argument list must be terminated with %NULL.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A newly created #GSubprocess, or %NULL on error (and @error
- will be set)</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags that define the behaviour of the subprocess</doc>
- <type name="SubprocessFlags" c:type="GSubprocessFlags"/>
- </parameter>
- <parameter name="error"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">return location for an error, or %NULL</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="argv0" transfer-ownership="none">
- <doc xml:space="preserve">first commandline argument to pass to the subprocess</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">more commandline arguments, followed by %NULL</doc>
- <varargs/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="newv"
- c:identifier="g_subprocess_newv"
- shadows="new"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Create a new process with the given flags and argument list.
- The argument list is expected to be %NULL-terminated.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A newly created #GSubprocess, or %NULL on error (and @error
- will be set)</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </return-value>
- <parameters>
- <parameter name="argv" transfer-ownership="none">
- <doc xml:space="preserve">commandline arguments for the subprocess</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags that define the behaviour of the subprocess</doc>
- <type name="SubprocessFlags" c:type="GSubprocessFlags"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="communicate"
- c:identifier="g_subprocess_communicate"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Communicate with the subprocess until it terminates, and all input
- and output has been completed.
- If @stdin_buf is given, the subprocess must have been created with
- %G_SUBPROCESS_FLAGS_STDIN_PIPE. The given data is fed to the
- stdin of the subprocess and the pipe is closed (ie: EOF).
- At the same time (as not to cause blocking when dealing with large
- amounts of data), if %G_SUBPROCESS_FLAGS_STDOUT_PIPE or
- %G_SUBPROCESS_FLAGS_STDERR_PIPE were used, reads from those
- streams. The data that was read is returned in @stdout and/or
- the @stderr.
- If the subprocess was created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE,
- @stdout_buf will contain the data read from stdout. Otherwise, for
- subprocesses not created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE,
- @stdout_buf will be set to %NULL. Similar provisions apply to
- @stderr_buf and %G_SUBPROCESS_FLAGS_STDERR_PIPE.
- As usual, any output variable may be given as %NULL to ignore it.
- If you desire the stdout and stderr data to be interleaved, create
- the subprocess with %G_SUBPROCESS_FLAGS_STDOUT_PIPE and
- %G_SUBPROCESS_FLAGS_STDERR_MERGE. The merged result will be returned
- in @stdout_buf and @stderr_buf will be set to %NULL.
- In case of any error (including cancellation), %FALSE will be
- returned with @error set. Some or all of the stdin data may have
- been written. Any stdout or stderr data that has been read will be
- discarded. None of the out variables (aside from @error) will have
- been set to anything in particular and should not be inspected.
- In the case that %TRUE is returned, the subprocess has exited and the
- exit status inspection APIs (eg: g_subprocess_get_if_exited(),
- g_subprocess_get_exit_status()) may be used.
- You should not attempt to use any of the subprocess pipes after
- starting this function, since they may be left in strange states,
- even if the operation was cancelled. You should especially not
- attempt to interact with the pipes while the operation is in progress
- (either from another thread or if using the asynchronous version).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="stdin_buf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to send to the stdin of the subprocess, or %NULL</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="stdout_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">data read from the subprocess stdout</doc>
- <type name="GLib.Bytes" c:type="GBytes**"/>
- </parameter>
- <parameter name="stderr_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">data read from the subprocess stderr</doc>
- <type name="GLib.Bytes" c:type="GBytes**"/>
- </parameter>
- </parameters>
- </method>
- <method name="communicate_async"
- c:identifier="g_subprocess_communicate_async">
- <doc xml:space="preserve">Asynchronous version of g_subprocess_communicate(). Complete
- invocation with g_subprocess_communicate_finish().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">Self</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="stdin_buf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Input data, or %NULL</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Cancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">Callback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="communicate_finish"
- c:identifier="g_subprocess_communicate_finish"
- throws="1">
- <doc xml:space="preserve">Complete an invocation of g_subprocess_communicate_async().</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">Self</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">Result</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="stdout_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Return location for stdout data</doc>
- <type name="GLib.Bytes" c:type="GBytes**"/>
- </parameter>
- <parameter name="stderr_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Return location for stderr data</doc>
- <type name="GLib.Bytes" c:type="GBytes**"/>
- </parameter>
- </parameters>
- </method>
- <method name="communicate_utf8"
- c:identifier="g_subprocess_communicate_utf8"
- throws="1">
- <doc xml:space="preserve">Like g_subprocess_communicate(), but validates the output of the
- process as UTF-8, and returns it as a regular NUL terminated string.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="stdin_buf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to send to the stdin of the subprocess, or %NULL</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="stdout_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">data read from the subprocess stdout</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- <parameter name="stderr_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">data read from the subprocess stderr</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="communicate_utf8_async"
- c:identifier="g_subprocess_communicate_utf8_async">
- <doc xml:space="preserve">Asynchronous version of g_subprocess_communicate_utf8(). Complete
- invocation with g_subprocess_communicate_utf8_finish().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">Self</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="stdin_buf"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Input data, or %NULL</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Cancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">Callback</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="communicate_utf8_finish"
- c:identifier="g_subprocess_communicate_utf8_finish"
- throws="1">
- <doc xml:space="preserve">Complete an invocation of g_subprocess_communicate_utf8_async().</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">Self</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">Result</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="stdout_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Return location for stdout data</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- <parameter name="stderr_buf"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Return location for stderr data</doc>
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </method>
- <method name="force_exit"
- c:identifier="g_subprocess_force_exit"
- version="2.40">
- <doc xml:space="preserve">Use an operating-system specific method to attempt an immediate,
- forceful termination of the process. There is no mechanism to
- determine whether or not the request itself was successful;
- however, you can use g_subprocess_wait() to monitor the status of
- the process after calling this function.
- On Unix, this function sends %SIGKILL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_exit_status"
- c:identifier="g_subprocess_get_exit_status"
- version="2.40">
- <doc xml:space="preserve">Check the exit status of the subprocess, given that it exited
- normally. This is the value passed to the exit() system call or the
- return value from main.
- This is equivalent to the system WEXITSTATUS macro.
- It is an error to call this function before g_subprocess_wait() and
- unless g_subprocess_get_if_exited() returned %TRUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the exit status</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_identifier" c:identifier="g_subprocess_get_identifier">
- <doc xml:space="preserve">On UNIX, returns the process ID as a decimal string.
- On Windows, returns the result of GetProcessId() also as a string.</doc>
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_if_exited"
- c:identifier="g_subprocess_get_if_exited"
- version="2.40">
- <doc xml:space="preserve">Check if the given subprocess exited normally (ie: by way of exit()
- or return from main()).
- This is equivalent to the system WIFEXITED macro.
- It is an error to call this function before g_subprocess_wait() has
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the case of a normal exit</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_if_signaled"
- c:identifier="g_subprocess_get_if_signaled"
- version="2.40">
- <doc xml:space="preserve">Check if the given subprocess terminated in response to a signal.
- This is equivalent to the system WIFSIGNALED macro.
- It is an error to call this function before g_subprocess_wait() has
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the case of termination due to a signal</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_status"
- c:identifier="g_subprocess_get_status"
- version="2.40">
- <doc xml:space="preserve">Gets the raw status code of the process, as from waitpid().
- This value has no particular meaning, but it can be used with the
- macros defined by the system headers such as WIFEXITED. It can also
- be used with g_spawn_check_exit_status().
- It is more likely that you want to use g_subprocess_get_if_exited()
- followed by g_subprocess_get_exit_status().
- It is an error to call this function before g_subprocess_wait() has
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the (meaningless) waitpid() exit status from the kernel</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_stderr_pipe"
- c:identifier="g_subprocess_get_stderr_pipe"
- version="2.40">
- <doc xml:space="preserve">Gets the #GInputStream from which to read the stderr output of
- @subprocess.
- The process must have been created with
- %G_SUBPROCESS_FLAGS_STDERR_PIPE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the stderr pipe</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_stdin_pipe"
- c:identifier="g_subprocess_get_stdin_pipe"
- version="2.40">
- <doc xml:space="preserve">Gets the #GOutputStream that you can write to in order to give data
- to the stdin of @subprocess.
- The process must have been created with
- %G_SUBPROCESS_FLAGS_STDIN_PIPE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the stdout pipe</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_stdout_pipe"
- c:identifier="g_subprocess_get_stdout_pipe"
- version="2.40">
- <doc xml:space="preserve">Gets the #GInputStream from which to read the stdout output of
- @subprocess.
- The process must have been created with
- %G_SUBPROCESS_FLAGS_STDOUT_PIPE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the stdout pipe</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_successful"
- c:identifier="g_subprocess_get_successful"
- version="2.40">
- <doc xml:space="preserve">Checks if the process was "successful". A process is considered
- successful if it exited cleanly with an exit status of 0, either by
- way of the exit() system call or return from main().
- It is an error to call this function before g_subprocess_wait() has
- returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the process exited cleanly with a exit status of 0</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_term_sig"
- c:identifier="g_subprocess_get_term_sig"
- version="2.40">
- <doc xml:space="preserve">Get the signal number that caused the subprocess to terminate, given
- that it terminated due to a signal.
- This is equivalent to the system WTERMSIG macro.
- It is an error to call this function before g_subprocess_wait() and
- unless g_subprocess_get_if_signaled() returned %TRUE.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the signal causing termination</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="send_signal"
- c:identifier="g_subprocess_send_signal"
- version="2.40">
- <doc xml:space="preserve">Sends the UNIX signal @signal_num to the subprocess, if it is still
- running.
- This API is race-free. If the subprocess has terminated, it will not
- be signalled.
- This API is not available on Windows.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="signal_num" transfer-ownership="none">
- <doc xml:space="preserve">the signal number to send</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait"
- c:identifier="g_subprocess_wait"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Synchronously wait for the subprocess to terminate.
- After the process terminates you can query its exit status with
- functions such as g_subprocess_get_if_exited() and
- g_subprocess_get_exit_status().
- This function does not fail in the case of the subprocess having
- abnormal termination. See g_subprocess_wait_check() for that.
- Cancelling @cancellable doesn't kill the subprocess. Call
- g_subprocess_force_exit() if it is desirable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if @cancellable was cancelled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_async"
- c:identifier="g_subprocess_wait_async"
- version="2.40">
- <doc xml:space="preserve">Wait for the subprocess to terminate.
- This is the asynchronous version of g_subprocess_wait().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the operation is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_check"
- c:identifier="g_subprocess_wait_check"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Combines g_subprocess_wait() with g_spawn_check_exit_status().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if process exited abnormally, or
- @cancellable was cancelled</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_check_async"
- c:identifier="g_subprocess_wait_check_async"
- version="2.40">
- <doc xml:space="preserve">Combines g_subprocess_wait_async() with g_spawn_check_exit_status().
- This is the asynchronous version of g_subprocess_wait_check().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the operation is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user_data for @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_check_finish"
- c:identifier="g_subprocess_wait_check_finish"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Collects the result of a previous call to
- g_subprocess_wait_check_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, or %FALSE with @error set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_finish"
- c:identifier="g_subprocess_wait_finish"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Collects the result of a previous call to
- g_subprocess_wait_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, or %FALSE with @error set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="subprocess" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #GAsyncResult passed to your #GAsyncReadyCallback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <property name="argv"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <array>
- <type name="utf8"/>
- </array>
- </property>
- <property name="flags"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SubprocessFlags"/>
- </property>
- </class>
- <bitfield name="SubprocessFlags"
- version="2.40"
- glib:type-name="GSubprocessFlags"
- glib:get-type="g_subprocess_flags_get_type"
- c:type="GSubprocessFlags">
- <doc xml:space="preserve">Flags to define the behaviour of a #GSubprocess.
- Note that the default for stdin is to redirect from /dev/null. For
- stdout and stderr the default are for them to inherit the
- corresponding descriptor from the calling process.
- Note that it is a programmer error to mix 'incompatible' flags. For
- example, you may not request both %G_SUBPROCESS_FLAGS_STDOUT_PIPE and
- %G_SUBPROCESS_FLAGS_STDOUT_SILENCE.</doc>
- <member name="none"
- value="0"
- c:identifier="G_SUBPROCESS_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags.</doc>
- </member>
- <member name="stdin_pipe"
- value="1"
- c:identifier="G_SUBPROCESS_FLAGS_STDIN_PIPE"
- glib:nick="stdin-pipe">
- <doc xml:space="preserve">create a pipe for the stdin of the
- spawned process that can be accessed with
- g_subprocess_get_stdin_pipe().</doc>
- </member>
- <member name="stdin_inherit"
- value="2"
- c:identifier="G_SUBPROCESS_FLAGS_STDIN_INHERIT"
- glib:nick="stdin-inherit">
- <doc xml:space="preserve">stdin is inherited from the
- calling process.</doc>
- </member>
- <member name="stdout_pipe"
- value="4"
- c:identifier="G_SUBPROCESS_FLAGS_STDOUT_PIPE"
- glib:nick="stdout-pipe">
- <doc xml:space="preserve">create a pipe for the stdout of the
- spawned process that can be accessed with
- g_subprocess_get_stdout_pipe().</doc>
- </member>
- <member name="stdout_silence"
- value="8"
- c:identifier="G_SUBPROCESS_FLAGS_STDOUT_SILENCE"
- glib:nick="stdout-silence">
- <doc xml:space="preserve">silence the stdout of the spawned
- process (ie: redirect to /dev/null).</doc>
- </member>
- <member name="stderr_pipe"
- value="16"
- c:identifier="G_SUBPROCESS_FLAGS_STDERR_PIPE"
- glib:nick="stderr-pipe">
- <doc xml:space="preserve">create a pipe for the stderr of the
- spawned process that can be accessed with
- g_subprocess_get_stderr_pipe().</doc>
- </member>
- <member name="stderr_silence"
- value="32"
- c:identifier="G_SUBPROCESS_FLAGS_STDERR_SILENCE"
- glib:nick="stderr-silence">
- <doc xml:space="preserve">silence the stderr of the spawned
- process (ie: redirect to /dev/null).</doc>
- </member>
- <member name="stderr_merge"
- value="64"
- c:identifier="G_SUBPROCESS_FLAGS_STDERR_MERGE"
- glib:nick="stderr-merge">
- <doc xml:space="preserve">merge the stderr of the spawned
- process with whatever the stdout happens to be. This is a good way
- of directing both streams to a common log file, for example.</doc>
- </member>
- <member name="inherit_fds"
- value="128"
- c:identifier="G_SUBPROCESS_FLAGS_INHERIT_FDS"
- glib:nick="inherit-fds">
- <doc xml:space="preserve">spawned processes will inherit the
- file descriptors of their parent, unless those descriptors have
- been explicitly marked as close-on-exec. This flag has no effect
- over the "standard" file descriptors (stdin, stdout, stderr).</doc>
- </member>
- </bitfield>
- <class name="SubprocessLauncher"
- c:symbol-prefix="subprocess_launcher"
- c:type="GSubprocessLauncher"
- version="2.40"
- parent="GObject.Object"
- glib:type-name="GSubprocessLauncher"
- glib:get-type="g_subprocess_launcher_get_type">
- <doc xml:space="preserve">This class contains a set of options for launching child processes,
- such as where its standard input and output will be directed, the
- argument list, the environment, and more.
- While the #GSubprocess class has high level functions covering
- popular cases, use of this class allows access to more advanced
- options. It can also be used to launch multiple subprocesses with
- a similar configuration.</doc>
- <constructor name="new"
- c:identifier="g_subprocess_launcher_new"
- version="2.40">
- <doc xml:space="preserve">Creates a new #GSubprocessLauncher.
- The launcher is created with the default options. A copy of the
- environment of the calling process is made at the time of this call
- and will be used as the environment that the process is launched in.</doc>
- <return-value transfer-ownership="full">
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GSubprocessFlags</doc>
- <type name="SubprocessFlags" c:type="GSubprocessFlags"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="getenv"
- c:identifier="g_subprocess_launcher_getenv"
- version="2.40">
- <doc xml:space="preserve">Returns the value of the environment variable @variable in the
- environment of processes launched from this launcher.
- On UNIX, the returned string can be an arbitrary byte string.
- On Windows, it will be UTF-8.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value of the environment variable, %NULL if unset</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="variable" transfer-ownership="none">
- <doc xml:space="preserve">the environment variable to get</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_child_setup"
- c:identifier="g_subprocess_launcher_set_child_setup"
- version="2.40">
- <doc xml:space="preserve">Sets up a child setup function.
- The child setup function will be called after fork() but before
- exec() on the child's side.
- @destroy_notify will not be automatically called on the child's side
- of the fork(). It will only be called when the last reference on the
- #GSubprocessLauncher is dropped or when a new child setup function is
- given.
- %NULL can be given as @child_setup to disable the functionality.
- Child setup functions are only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="child_setup"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GSpawnChildSetupFunc to use as the child setup function</doc>
- <type name="GLib.SpawnChildSetupFunc"
- c:type="GSpawnChildSetupFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for @child_setup</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_notify"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify for @user_data</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_cwd"
- c:identifier="g_subprocess_launcher_set_cwd"
- version="2.40">
- <doc xml:space="preserve">Sets the current working directory that processes will be launched
- with.
- By default processes are launched with the current working directory
- of the launching process at the time of launch.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="cwd" transfer-ownership="none">
- <doc xml:space="preserve">the cwd for launched processes</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_environ"
- c:identifier="g_subprocess_launcher_set_environ"
- version="2.40">
- <doc xml:space="preserve">Replace the entire environment of processes launched from this
- launcher with the given 'environ' variable.
- Typically you will build this variable by using g_listenv() to copy
- the process 'environ' and using the functions g_environ_setenv(),
- g_environ_unsetenv(), etc.
- As an alternative, you can use g_subprocess_launcher_setenv(),
- g_subprocess_launcher_unsetenv(), etc.
- On UNIX, all strings in this array can be arbitrary byte strings.
- On Windows, they should be in UTF-8.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="env" transfer-ownership="none">
- <doc xml:space="preserve">the replacement environment</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flags"
- c:identifier="g_subprocess_launcher_set_flags"
- version="2.40">
- <doc xml:space="preserve">Sets the flags on the launcher.
- The default flags are %G_SUBPROCESS_FLAGS_NONE.
- You may not set flags that specify conflicting options for how to
- handle a particular stdio stream (eg: specifying both
- %G_SUBPROCESS_FLAGS_STDIN_PIPE and
- %G_SUBPROCESS_FLAGS_STDIN_INHERIT).
- You may also not set a flag that conflicts with a previous call to a
- function like g_subprocess_launcher_set_stdin_file_path() or
- g_subprocess_launcher_take_stdout_fd().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GSubprocessFlags</doc>
- <type name="SubprocessFlags" c:type="GSubprocessFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_stderr_file_path"
- c:identifier="g_subprocess_launcher_set_stderr_file_path"
- version="2.40">
- <doc xml:space="preserve">Sets the file path to use as the stderr for spawned processes.
- If @path is %NULL then any previously given path is unset.
- The file will be created or truncated when the process is spawned, as
- would be the case if using '2>' at the shell.
- If you want to send both stdout and stderr to the same file then use
- %G_SUBPROCESS_FLAGS_STDERR_MERGE.
- You may not set a stderr file path if a stderr fd is already set or
- if the launcher flags contain any flags directing stderr elsewhere.
- This feature is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a filename or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_stdin_file_path"
- c:identifier="g_subprocess_launcher_set_stdin_file_path"
- version="2.40">
- <doc xml:space="preserve">Sets the file path to use as the stdin for spawned processes.
- If @path is %NULL then any previously given path is unset.
- The file must exist or spawning the process will fail.
- You may not set a stdin file path if a stdin fd is already set or if
- the launcher flags contain any flags directing stdin elsewhere.
- This feature is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a filename or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_stdout_file_path"
- c:identifier="g_subprocess_launcher_set_stdout_file_path"
- version="2.40">
- <doc xml:space="preserve">Sets the file path to use as the stdout for spawned processes.
- If @path is %NULL then any previously given path is unset.
- The file will be created or truncated when the process is spawned, as
- would be the case if using '>' at the shell.
- You may not set a stdout file path if a stdout fd is already set or
- if the launcher flags contain any flags directing stdout elsewhere.
- This feature is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a filename or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="setenv"
- c:identifier="g_subprocess_launcher_setenv"
- version="2.40">
- <doc xml:space="preserve">Sets the environment variable @variable in the environment of
- processes launched from this launcher.
- On UNIX, both the variable's name and value can be arbitrary byte
- strings, except that the variable's name cannot contain '='.
- On Windows, they should be in UTF-8.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="variable" transfer-ownership="none">
- <doc xml:space="preserve">the environment variable to set, must not contain '='</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new value for the variable</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="overwrite" transfer-ownership="none">
- <doc xml:space="preserve">whether to change the variable if it already exists</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="spawn"
- c:identifier="g_subprocess_launcher_spawn"
- version="2.40"
- introspectable="0">
- <doc xml:space="preserve">Creates a #GSubprocess given a provided varargs list of arguments.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GSubprocess, or %NULL on error (and @error will be set)</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">Error</doc>
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="argv0" transfer-ownership="none">
- <doc xml:space="preserve">Command line arguments</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">Continued arguments, %NULL terminated</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="spawnv"
- c:identifier="g_subprocess_launcher_spawnv"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Creates a #GSubprocess given a provided array of arguments.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new #GSubprocess, or %NULL on error (and @error will be set)</doc>
- <type name="Subprocess" c:type="GSubprocess*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="argv" transfer-ownership="none">
- <doc xml:space="preserve">Command line arguments</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="take_fd" c:identifier="g_subprocess_launcher_take_fd">
- <doc xml:space="preserve">Transfer an arbitrary file descriptor from parent process to the
- child. This function takes "ownership" of the fd; it will be closed
- in the parent when @self is freed.
- By default, all file descriptors from the parent will be closed.
- This function allows you to create (for example) a custom pipe() or
- socketpair() before launching the process, and choose the target
- descriptor in the child.
- An example use case is GNUPG, which has a command line argument
- --passphrase-fd providing a file descriptor number where it expects
- the passphrase to be written.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="source_fd" transfer-ownership="none">
- <doc xml:space="preserve">File descriptor in parent process</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="target_fd" transfer-ownership="none">
- <doc xml:space="preserve">Target descriptor for child process</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="take_stderr_fd"
- c:identifier="g_subprocess_launcher_take_stderr_fd"
- version="2.40">
- <doc xml:space="preserve">Sets the file descriptor to use as the stderr for spawned processes.
- If @fd is -1 then any previously given fd is unset.
- Note that the default behaviour is to pass stderr through to the
- stderr of the parent process.
- The passed @fd belongs to the #GSubprocessLauncher. It will be
- automatically closed when the launcher is finalized. The file
- descriptor will also be closed on the child side when executing the
- spawned process.
- You may not set a stderr fd if a stderr file path is already set or
- if the launcher flags contain any flags directing stderr elsewhere.
- This feature is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="take_stdin_fd"
- c:identifier="g_subprocess_launcher_take_stdin_fd"
- version="2.40">
- <doc xml:space="preserve">Sets the file descriptor to use as the stdin for spawned processes.
- If @fd is -1 then any previously given fd is unset.
- Note that if your intention is to have the stdin of the calling
- process inherited by the child then %G_SUBPROCESS_FLAGS_STDIN_INHERIT
- is a better way to go about doing that.
- The passed @fd is noted but will not be touched in the current
- process. It is therefore necessary that it be kept open by the
- caller until the subprocess is spawned. The file descriptor will
- also not be explicitly closed on the child side, so it must be marked
- O_CLOEXEC if that's what you want.
- You may not set a stdin fd if a stdin file path is already set or if
- the launcher flags contain any flags directing stdin elsewhere.
- This feature is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="take_stdout_fd"
- c:identifier="g_subprocess_launcher_take_stdout_fd"
- version="2.40">
- <doc xml:space="preserve">Sets the file descriptor to use as the stdout for spawned processes.
- If @fd is -1 then any previously given fd is unset.
- Note that the default behaviour is to pass stdout through to the
- stdout of the parent process.
- The passed @fd is noted but will not be touched in the current
- process. It is therefore necessary that it be kept open by the
- caller until the subprocess is spawned. The file descriptor will
- also not be explicitly closed on the child side, so it must be marked
- O_CLOEXEC if that's what you want.
- You may not set a stdout fd if a stdout file path is already set or
- if the launcher flags contain any flags directing stdout elsewhere.
- This feature is only available on UNIX.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocessLauncher</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="unsetenv"
- c:identifier="g_subprocess_launcher_unsetenv"
- version="2.40">
- <doc xml:space="preserve">Removes the environment variable @variable from the environment of
- processes launched from this launcher.
- On UNIX, the variable's name can be an arbitrary byte string not
- containing '='. On Windows, it should be in UTF-8.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GSubprocess</doc>
- <type name="SubprocessLauncher" c:type="GSubprocessLauncher*"/>
- </instance-parameter>
- <parameter name="variable" transfer-ownership="none">
- <doc xml:space="preserve">the environment variable to unset, must not contain '='</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="flags"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="SubprocessFlags"/>
- </property>
- </class>
- <constant name="TLS_BACKEND_EXTENSION_POINT_NAME"
- value="gio-tls-backend"
- c:type="G_TLS_BACKEND_EXTENSION_POINT_NAME">
- <doc xml:space="preserve">Extension point for TLS functionality via #GTlsBackend.
- See [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT"
- value="1.3.6.1.5.5.7.3.2"
- c:type="G_TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT">
- <doc xml:space="preserve">The purpose used to verify the client certificate in a TLS connection.
- Used by TLS servers.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER"
- value="1.3.6.1.5.5.7.3.1"
- c:type="G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER">
- <doc xml:space="preserve">The purpose used to verify the server certificate in a TLS connection. This
- is the most common purpose in use. Used by TLS clients.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <class name="Task"
- c:symbol-prefix="task"
- c:type="GTask"
- parent="GObject.Object"
- glib:type-name="GTask"
- glib:get-type="g_task_get_type"
- glib:type-struct="TaskClass">
- <doc xml:space="preserve">A #GTask represents and manages a cancellable "task".
- ## Asynchronous operations
- The most common usage of #GTask is as a #GAsyncResult, to
- manage data during an asynchronous operation. You call
- g_task_new() in the "start" method, followed by
- g_task_set_task_data() and the like if you need to keep some
- additional data associated with the task, and then pass the
- task object around through your asynchronous operation.
- Eventually, you will call a method such as
- g_task_return_pointer() or g_task_return_error(), which will
- save the value you give it and then invoke the task's callback
- function (waiting until the next iteration of the main
- loop first, if necessary). The caller will pass the #GTask back
- to the operation's finish function (as a #GAsyncResult), and
- you can use g_task_propagate_pointer() or the like to extract
- the return value.
- Here is an example for using GTask as a GAsyncResult:
- |[<!-- language="C" -->
- typedef struct {
- CakeFrostingType frosting;
- char *message;
- } DecorationData;
- static void
- decoration_data_free (DecorationData *decoration)
- {
- g_free (decoration->message);
- g_slice_free (DecorationData, decoration);
- }
- static void
- baked_cb (Cake *cake,
- gpointer user_data)
- {
- GTask *task = user_data;
- DecorationData *decoration = g_task_get_task_data (task);
- GError *error = NULL;
- if (cake == NULL)
- {
- g_task_return_new_error (task, BAKER_ERROR, BAKER_ERROR_NO_FLOUR,
- "Go to the supermarket");
- g_object_unref (task);
- return;
- }
- if (!cake_decorate (cake, decoration->frosting, decoration->message, &error))
- {
- g_object_unref (cake);
- // g_task_return_error() takes ownership of error
- g_task_return_error (task, error);
- g_object_unref (task);
- return;
- }
- g_task_return_pointer (task, cake, g_object_unref);
- g_object_unref (task);
- }
- void
- baker_bake_cake_async (Baker *self,
- guint radius,
- CakeFlavor flavor,
- CakeFrostingType frosting,
- const char *message,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
- {
- GTask *task;
- DecorationData *decoration;
- Cake *cake;
- task = g_task_new (self, cancellable, callback, user_data);
- if (radius < 3)
- {
- g_task_return_new_error (task, BAKER_ERROR, BAKER_ERROR_TOO_SMALL,
- "%ucm radius cakes are silly",
- radius);
- g_object_unref (task);
- return;
- }
- cake = _baker_get_cached_cake (self, radius, flavor, frosting, message);
- if (cake != NULL)
- {
- // _baker_get_cached_cake() returns a reffed cake
- g_task_return_pointer (task, cake, g_object_unref);
- g_object_unref (task);
- return;
- }
- decoration = g_slice_new (DecorationData);
- decoration->frosting = frosting;
- decoration->message = g_strdup (message);
- g_task_set_task_data (task, decoration, (GDestroyNotify) decoration_data_free);
- _baker_begin_cake (self, radius, flavor, cancellable, baked_cb, task);
- }
- Cake *
- baker_bake_cake_finish (Baker *self,
- GAsyncResult *result,
- GError **error)
- {
- g_return_val_if_fail (g_task_is_valid (result, self), NULL);
- return g_task_propagate_pointer (G_TASK (result), error);
- }
- ]|
- ## Chained asynchronous operations
- #GTask also tries to simplify asynchronous operations that
- internally chain together several smaller asynchronous
- operations. g_task_get_cancellable(), g_task_get_context(),
- and g_task_get_priority() allow you to get back the task's
- #GCancellable, #GMainContext, and [I/O priority][io-priority]
- when starting a new subtask, so you don't have to keep track
- of them yourself. g_task_attach_source() simplifies the case
- of waiting for a source to fire (automatically using the correct
- #GMainContext and priority).
- Here is an example for chained asynchronous operations:
- |[<!-- language="C" -->
- typedef struct {
- Cake *cake;
- CakeFrostingType frosting;
- char *message;
- } BakingData;
- static void
- decoration_data_free (BakingData *bd)
- {
- if (bd->cake)
- g_object_unref (bd->cake);
- g_free (bd->message);
- g_slice_free (BakingData, bd);
- }
- static void
- decorated_cb (Cake *cake,
- GAsyncResult *result,
- gpointer user_data)
- {
- GTask *task = user_data;
- GError *error = NULL;
- if (!cake_decorate_finish (cake, result, &error))
- {
- g_object_unref (cake);
- g_task_return_error (task, error);
- g_object_unref (task);
- return;
- }
- // baking_data_free() will drop its ref on the cake, so we have to
- // take another here to give to the caller.
- g_task_return_pointer (task, g_object_ref (cake), g_object_unref);
- g_object_unref (task);
- }
- static gboolean
- decorator_ready (gpointer user_data)
- {
- GTask *task = user_data;
- BakingData *bd = g_task_get_task_data (task);
- cake_decorate_async (bd->cake, bd->frosting, bd->message,
- g_task_get_cancellable (task),
- decorated_cb, task);
- return G_SOURCE_REMOVE;
- }
- static void
- baked_cb (Cake *cake,
- gpointer user_data)
- {
- GTask *task = user_data;
- BakingData *bd = g_task_get_task_data (task);
- GError *error = NULL;
- if (cake == NULL)
- {
- g_task_return_new_error (task, BAKER_ERROR, BAKER_ERROR_NO_FLOUR,
- "Go to the supermarket");
- g_object_unref (task);
- return;
- }
- bd->cake = cake;
- // Bail out now if the user has already cancelled
- if (g_task_return_error_if_cancelled (task))
- {
- g_object_unref (task);
- return;
- }
- if (cake_decorator_available (cake))
- decorator_ready (task);
- else
- {
- GSource *source;
- source = cake_decorator_wait_source_new (cake);
- // Attach @source to @task's GMainContext and have it call
- // decorator_ready() when it is ready.
- g_task_attach_source (task, source, decorator_ready);
- g_source_unref (source);
- }
- }
- void
- baker_bake_cake_async (Baker *self,
- guint radius,
- CakeFlavor flavor,
- CakeFrostingType frosting,
- const char *message,
- gint priority,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
- {
- GTask *task;
- BakingData *bd;
- task = g_task_new (self, cancellable, callback, user_data);
- g_task_set_priority (task, priority);
- bd = g_slice_new0 (BakingData);
- bd->frosting = frosting;
- bd->message = g_strdup (message);
- g_task_set_task_data (task, bd, (GDestroyNotify) baking_data_free);
- _baker_begin_cake (self, radius, flavor, cancellable, baked_cb, task);
- }
- Cake *
- baker_bake_cake_finish (Baker *self,
- GAsyncResult *result,
- GError **error)
- {
- g_return_val_if_fail (g_task_is_valid (result, self), NULL);
- return g_task_propagate_pointer (G_TASK (result), error);
- }
- ]|
- ## Asynchronous operations from synchronous ones
- You can use g_task_run_in_thread() to turn a synchronous
- operation into an asynchronous one, by running it in a thread
- which will then dispatch the result back to the caller's
- #GMainContext when it completes.
- Running a task in a thread:
- |[<!-- language="C" -->
- typedef struct {
- guint radius;
- CakeFlavor flavor;
- CakeFrostingType frosting;
- char *message;
- } CakeData;
- static void
- cake_data_free (CakeData *cake_data)
- {
- g_free (cake_data->message);
- g_slice_free (CakeData, cake_data);
- }
- static void
- bake_cake_thread (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
- {
- Baker *self = source_object;
- CakeData *cake_data = task_data;
- Cake *cake;
- GError *error = NULL;
- cake = bake_cake (baker, cake_data->radius, cake_data->flavor,
- cake_data->frosting, cake_data->message,
- cancellable, &error);
- if (cake)
- g_task_return_pointer (task, cake, g_object_unref);
- else
- g_task_return_error (task, error);
- }
- void
- baker_bake_cake_async (Baker *self,
- guint radius,
- CakeFlavor flavor,
- CakeFrostingType frosting,
- const char *message,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
- {
- CakeData *cake_data;
- GTask *task;
- cake_data = g_slice_new (CakeData);
- cake_data->radius = radius;
- cake_data->flavor = flavor;
- cake_data->frosting = frosting;
- cake_data->message = g_strdup (message);
- task = g_task_new (self, cancellable, callback, user_data);
- g_task_set_task_data (task, cake_data, (GDestroyNotify) cake_data_free);
- g_task_run_in_thread (task, bake_cake_thread);
- g_object_unref (task);
- }
- Cake *
- baker_bake_cake_finish (Baker *self,
- GAsyncResult *result,
- GError **error)
- {
- g_return_val_if_fail (g_task_is_valid (result, self), NULL);
- return g_task_propagate_pointer (G_TASK (result), error);
- }
- ]|
- ## Adding cancellability to uncancellable tasks
- Finally, g_task_run_in_thread() and g_task_run_in_thread_sync()
- can be used to turn an uncancellable operation into a
- cancellable one. If you call g_task_set_return_on_cancel(),
- passing %TRUE, then if the task's #GCancellable is cancelled,
- it will return control back to the caller immediately, while
- allowing the task thread to continue running in the background
- (and simply discarding its result when it finally does finish).
- Provided that the task thread is careful about how it uses
- locks and other externally-visible resources, this allows you
- to make "GLib-friendly" asynchronous and cancellable
- synchronous variants of blocking APIs.
- Cancelling a task:
- |[<!-- language="C" -->
- static void
- bake_cake_thread (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
- {
- Baker *self = source_object;
- CakeData *cake_data = task_data;
- Cake *cake;
- GError *error = NULL;
- cake = bake_cake (baker, cake_data->radius, cake_data->flavor,
- cake_data->frosting, cake_data->message,
- &error);
- if (error)
- {
- g_task_return_error (task, error);
- return;
- }
- // If the task has already been cancelled, then we don't want to add
- // the cake to the cake cache. Likewise, we don't want to have the
- // task get cancelled in the middle of updating the cache.
- // g_task_set_return_on_cancel() will return %TRUE here if it managed
- // to disable return-on-cancel, or %FALSE if the task was cancelled
- // before it could.
- if (g_task_set_return_on_cancel (task, FALSE))
- {
- // If the caller cancels at this point, their
- // GAsyncReadyCallback won't be invoked until we return,
- // so we don't have to worry that this code will run at
- // the same time as that code does. But if there were
- // other functions that might look at the cake cache,
- // then we'd probably need a GMutex here as well.
- baker_add_cake_to_cache (baker, cake);
- g_task_return_pointer (task, cake, g_object_unref);
- }
- }
- void
- baker_bake_cake_async (Baker *self,
- guint radius,
- CakeFlavor flavor,
- CakeFrostingType frosting,
- const char *message,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
- {
- CakeData *cake_data;
- GTask *task;
- cake_data = g_slice_new (CakeData);
- ...
- task = g_task_new (self, cancellable, callback, user_data);
- g_task_set_task_data (task, cake_data, (GDestroyNotify) cake_data_free);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread (task, bake_cake_thread);
- }
- Cake *
- baker_bake_cake_sync (Baker *self,
- guint radius,
- CakeFlavor flavor,
- CakeFrostingType frosting,
- const char *message,
- GCancellable *cancellable,
- GError **error)
- {
- CakeData *cake_data;
- GTask *task;
- Cake *cake;
- cake_data = g_slice_new (CakeData);
- ...
- task = g_task_new (self, cancellable, NULL, NULL);
- g_task_set_task_data (task, cake_data, (GDestroyNotify) cake_data_free);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread_sync (task, bake_cake_thread);
- cake = g_task_propagate_pointer (task, error);
- g_object_unref (task);
- return cake;
- }
- ]|
- ## Porting from GSimpleAsyncResult
- #GTask's API attempts to be simpler than #GSimpleAsyncResult's
- in several ways:
- - You can save task-specific data with g_task_set_task_data(), and
- retrieve it later with g_task_get_task_data(). This replaces the
- abuse of g_simple_async_result_set_op_res_gpointer() for the same
- purpose with #GSimpleAsyncResult.
- - In addition to the task data, #GTask also keeps track of the
- [priority][io-priority], #GCancellable, and
- #GMainContext associated with the task, so tasks that consist of
- a chain of simpler asynchronous operations will have easy access
- to those values when starting each sub-task.
- - g_task_return_error_if_cancelled() provides simplified
- handling for cancellation. In addition, cancellation
- overrides any other #GTask return value by default, like
- #GSimpleAsyncResult does when
- g_simple_async_result_set_check_cancellable() is called.
- (You can use g_task_set_check_cancellable() to turn off that
- behavior.) On the other hand, g_task_run_in_thread()
- guarantees that it will always run your
- `task_func`, even if the task's #GCancellable
- is already cancelled before the task gets a chance to run;
- you can start your `task_func` with a
- g_task_return_error_if_cancelled() check if you need the
- old behavior.
- - The "return" methods (eg, g_task_return_pointer())
- automatically cause the task to be "completed" as well, and
- there is no need to worry about the "complete" vs "complete
- in idle" distinction. (#GTask automatically figures out
- whether the task's callback can be invoked directly, or
- if it needs to be sent to another #GMainContext, or delayed
- until the next iteration of the current #GMainContext.)
- - The "finish" functions for #GTask-based operations are generally
- much simpler than #GSimpleAsyncResult ones, normally consisting
- of only a single call to g_task_propagate_pointer() or the like.
- Since g_task_propagate_pointer() "steals" the return value from
- the #GTask, it is not necessary to juggle pointers around to
- prevent it from being freed twice.
- - With #GSimpleAsyncResult, it was common to call
- g_simple_async_result_propagate_error() from the
- `_finish()` wrapper function, and have
- virtual method implementations only deal with successful
- returns. This behavior is deprecated, because it makes it
- difficult for a subclass to chain to a parent class's async
- methods. Instead, the wrapper function should just be a
- simple wrapper, and the virtual method should call an
- appropriate `g_task_propagate_` function.
- Note that wrapper methods can now use
- g_async_result_legacy_propagate_error() to do old-style
- #GSimpleAsyncResult error-returning behavior, and
- g_async_result_is_tagged() to check if a result is tagged as
- having come from the `_async()` wrapper
- function (for "short-circuit" results, such as when passing
- 0 to g_input_stream_read_async()).</doc>
- <implements name="AsyncResult"/>
- <constructor name="new" c:identifier="g_task_new" version="2.36">
- <doc xml:space="preserve">Creates a #GTask acting on @source_object, which will eventually be
- used to invoke @callback in the current
- [thread-default main context][g-main-context-push-thread-default].
- Call this in the "start" method of your asynchronous method, and
- pass the #GTask around throughout the asynchronous operation. You
- can use g_task_set_task_data() to attach task-specific data to the
- object, which you can retrieve later via g_task_get_task_data().
- By default, if @cancellable is cancelled, then the return value of
- the task will always be %G_IO_ERROR_CANCELLED, even if the task had
- already completed before the cancellation. This allows for
- simplified handling in cases where cancellation may imply that
- other objects that the task depends on have been destroyed. If you
- do not want this behavior, you can use
- g_task_set_check_cancellable() to change it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GObject that owns
- this task, or %NULL.</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="is_valid" c:identifier="g_task_is_valid" version="2.36">
- <doc xml:space="preserve">Checks that @result is a #GTask, and that @source_object is its
- source object (or that @source_object is %NULL and @result has no
- source object). This can be used in g_return_if_fail() checks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @result and @source_object are valid, %FALSE
- if not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult</doc>
- <type name="AsyncResult" c:type="gpointer"/>
- </parameter>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the source object
- expected to be associated with the task</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="report_error"
- c:identifier="g_task_report_error"
- version="2.36">
- <doc xml:space="preserve">Creates a #GTask and then immediately calls g_task_return_error()
- on it. Use this in the wrapper function of an asynchronous method
- when you want to avoid even calling the virtual method. You can
- then use g_async_result_is_tagged() in the finish method wrapper to
- check if the result there is tagged as having been created by the
- wrapper method, and deal with it appropriately if so.
- See also g_task_report_new_error().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GObject that owns
- this task, or %NULL.</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an opaque pointer indicating the source of this task</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="error" transfer-ownership="full">
- <doc xml:space="preserve">error to report</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="report_new_error"
- c:identifier="g_task_report_new_error"
- version="2.36"
- introspectable="0">
- <doc xml:space="preserve">Creates a #GTask and then immediately calls
- g_task_return_new_error() on it. Use this in the wrapper function
- of an asynchronous method when you want to avoid even calling the
- virtual method. You can then use g_async_result_is_tagged() in the
- finish method wrapper to check if the result there is tagged as
- having been created by the wrapper method, and deal with it
- appropriately if so.
- See also g_task_report_error().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="source_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the #GObject that owns
- this task, or %NULL.</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="callback_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an opaque pointer indicating the source of this task</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">an error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a string with format characters.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">a list of values to insert into @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <method name="attach_source"
- c:identifier="g_task_attach_source"
- version="2.36"
- introspectable="0">
- <doc xml:space="preserve">A utility function for dealing with async operations where you need
- to wait for a #GSource to trigger. Attaches @source to @task's
- #GMainContext with @task's [priority][io-priority], and sets @source's
- callback to @callback, with @task as the callback's `user_data`.
- This takes a reference on @task until @source is destroyed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">the source to attach</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </parameter>
- <parameter name="callback" transfer-ownership="none">
- <doc xml:space="preserve">the callback to invoke when @source triggers</doc>
- <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_cancellable"
- c:identifier="g_task_get_cancellable"
- version="2.36">
- <doc xml:space="preserve">Gets @task's #GCancellable</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@task's #GCancellable</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_check_cancellable"
- c:identifier="g_task_get_check_cancellable"
- version="2.36">
- <doc xml:space="preserve">Gets @task's check-cancellable flag. See
- g_task_set_check_cancellable() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_completed"
- c:identifier="g_task_get_completed"
- version="2.44">
- <doc xml:space="preserve">Gets the value of #GTask:completed. This changes from %FALSE to %TRUE after
- the task’s callback is invoked, and will return %FALSE if called from inside
- the callback.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the task has completed, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_context"
- c:identifier="g_task_get_context"
- version="2.36">
- <doc xml:space="preserve">Gets the #GMainContext that @task will return its result in (that
- is, the context that was the
- [thread-default main context][g-main-context-push-thread-default]
- at the point when @task was created).
- This will always return a non-%NULL value, even if the task's
- context is the default #GMainContext.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@task's #GMainContext</doc>
- <type name="GLib.MainContext" c:type="GMainContext*"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_priority"
- c:identifier="g_task_get_priority"
- version="2.36">
- <doc xml:space="preserve">Gets @task's priority</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@task's priority</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_return_on_cancel"
- c:identifier="g_task_get_return_on_cancel"
- version="2.36">
- <doc xml:space="preserve">Gets @task's return-on-cancel flag. See
- g_task_set_return_on_cancel() for more details.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_source_object"
- c:identifier="g_task_get_source_object"
- version="2.36">
- <doc xml:space="preserve">Gets the source object from @task. Like
- g_async_result_get_source_object(), but does not ref the object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@task's source object, or %NULL</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_source_tag"
- c:identifier="g_task_get_source_tag"
- version="2.36">
- <doc xml:space="preserve">Gets @task's source tag. See g_task_set_source_tag().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">@task's source tag</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_task_data"
- c:identifier="g_task_get_task_data"
- version="2.36">
- <doc xml:space="preserve">Gets @task's `task_data`.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">@task's `task_data`.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="had_error" c:identifier="g_task_had_error" version="2.36">
- <doc xml:space="preserve">Tests if @task resulted in an error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the task resulted in an error, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="propagate_boolean"
- c:identifier="g_task_propagate_boolean"
- version="2.36"
- throws="1">
- <doc xml:space="preserve">Gets the result of @task as a #gboolean.
- If the task resulted in an error, or was cancelled, then this will
- instead return %FALSE and set @error.
- Since this method transfers ownership of the return value (or
- error) to the caller, you may only call it once.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the task result, or %FALSE on error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="propagate_int"
- c:identifier="g_task_propagate_int"
- version="2.36"
- throws="1">
- <doc xml:space="preserve">Gets the result of @task as an integer (#gssize).
- If the task resulted in an error, or was cancelled, then this will
- instead return -1 and set @error.
- Since this method transfers ownership of the return value (or
- error) to the caller, you may only call it once.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the task result, or -1 on error</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="propagate_pointer"
- c:identifier="g_task_propagate_pointer"
- version="2.36"
- throws="1">
- <doc xml:space="preserve">Gets the result of @task as a pointer, and transfers ownership
- of that value to the caller.
- If the task resulted in an error, or was cancelled, then this will
- instead return %NULL and set @error.
- Since this method transfers ownership of the return value (or
- error) to the caller, you may only call it once.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the task result, or %NULL on error</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="return_boolean"
- c:identifier="g_task_return_boolean"
- version="2.36">
- <doc xml:space="preserve">Sets @task's result to @result and completes the task (see
- g_task_return_pointer() for more discussion of exactly what this
- means).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the #gboolean result of a task function.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_error"
- c:identifier="g_task_return_error"
- version="2.36">
- <doc xml:space="preserve">Sets @task's result to @error (which @task assumes ownership of)
- and completes the task (see g_task_return_pointer() for more
- discussion of exactly what this means).
- Note that since the task takes ownership of @error, and since the
- task may be completed before returning from g_task_return_error(),
- you cannot assume that @error is still valid after calling this.
- Call g_error_copy() on the error if you need to keep a local copy
- as well.
- See also g_task_return_new_error().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="error" transfer-ownership="full">
- <doc xml:space="preserve">the #GError result of a task function.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_error_if_cancelled"
- c:identifier="g_task_return_error_if_cancelled"
- version="2.36">
- <doc xml:space="preserve">Checks if @task's #GCancellable has been cancelled, and if so, sets
- @task's error accordingly and completes the task (see
- g_task_return_pointer() for more discussion of exactly what this
- means).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @task has been cancelled, %FALSE if not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="return_int"
- c:identifier="g_task_return_int"
- version="2.36">
- <doc xml:space="preserve">Sets @task's result to @result and completes the task (see
- g_task_return_pointer() for more discussion of exactly what this
- means).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the integer (#gssize) result of a task function.</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="return_new_error"
- c:identifier="g_task_return_new_error"
- version="2.36"
- introspectable="0">
- <doc xml:space="preserve">Sets @task's result to a new #GError created from @domain, @code,
- @format, and the remaining arguments, and completes the task (see
- g_task_return_pointer() for more discussion of exactly what this
- means).
- See also g_task_return_error().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask.</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">an error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a string with format characters.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">a list of values to insert into @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="return_pointer"
- c:identifier="g_task_return_pointer"
- version="2.36">
- <doc xml:space="preserve">Sets @task's result to @result and completes the task. If @result
- is not %NULL, then @result_destroy will be used to free @result if
- the caller does not take ownership of it with
- g_task_propagate_pointer().
- "Completes the task" means that for an ordinary asynchronous task
- it will either invoke the task's callback, or else queue that
- callback to be invoked in the proper #GMainContext, or in the next
- iteration of the current #GMainContext. For a task run via
- g_task_run_in_thread() or g_task_run_in_thread_sync(), calling this
- method will save @result to be returned to the caller later, but
- the task will not actually be completed until the #GTaskThreadFunc
- exits.
- Note that since the task may be completed before returning from
- g_task_return_pointer(), you cannot assume that @result is still
- valid after calling this, unless you are still holding another
- reference on it.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="result"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the pointer result of a task
- function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="result_destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify function.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="run_in_thread"
- c:identifier="g_task_run_in_thread"
- version="2.36"
- introspectable="0">
- <doc xml:space="preserve">Runs @task_func in another thread. When @task_func returns, @task's
- #GAsyncReadyCallback will be invoked in @task's #GMainContext.
- This takes a ref on @task until the task completes.
- See #GTaskThreadFunc for more details about how @task_func is handled.
- Although GLib currently rate-limits the tasks queued via
- g_task_run_in_thread(), you should not assume that it will always
- do this. If you have a very large number of tasks to run, but don't
- want them to all run at once, you should only queue a limited
- number of them at a time.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="task_func" transfer-ownership="none">
- <doc xml:space="preserve">a #GTaskThreadFunc</doc>
- <type name="TaskThreadFunc" c:type="GTaskThreadFunc"/>
- </parameter>
- </parameters>
- </method>
- <method name="run_in_thread_sync"
- c:identifier="g_task_run_in_thread_sync"
- version="2.36"
- introspectable="0">
- <doc xml:space="preserve">Runs @task_func in another thread, and waits for it to return or be
- cancelled. You can use g_task_propagate_pointer(), etc, afterward
- to get the result of @task_func.
- See #GTaskThreadFunc for more details about how @task_func is handled.
- Normally this is used with tasks created with a %NULL
- `callback`, but note that even if the task does
- have a callback, it will not be invoked when @task_func returns.
- #GTask:completed will be set to %TRUE just before this function returns.
- Although GLib currently rate-limits the tasks queued via
- g_task_run_in_thread_sync(), you should not assume that it will
- always do this. If you have a very large number of tasks to run,
- but don't want them to all run at once, you should only queue a
- limited number of them at a time.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">a #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="task_func" transfer-ownership="none">
- <doc xml:space="preserve">a #GTaskThreadFunc</doc>
- <type name="TaskThreadFunc" c:type="GTaskThreadFunc"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_check_cancellable"
- c:identifier="g_task_set_check_cancellable"
- version="2.36">
- <doc xml:space="preserve">Sets or clears @task's check-cancellable flag. If this is %TRUE
- (the default), then g_task_propagate_pointer(), etc, and
- g_task_had_error() will check the task's #GCancellable first, and
- if it has been cancelled, then they will consider the task to have
- returned an "Operation was cancelled" error
- (%G_IO_ERROR_CANCELLED), regardless of any other error or return
- value the task may have had.
- If @check_cancellable is %FALSE, then the #GTask will not check the
- cancellable itself, and it is up to @task's owner to do this (eg,
- via g_task_return_error_if_cancelled()).
- If you are using g_task_set_return_on_cancel() as well, then
- you must leave check-cancellable set %TRUE.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="check_cancellable" transfer-ownership="none">
- <doc xml:space="preserve">whether #GTask will check the state of
- its #GCancellable for you.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_priority"
- c:identifier="g_task_set_priority"
- version="2.36">
- <doc xml:space="preserve">Sets @task's priority. If you do not call this, it will default to
- %G_PRIORITY_DEFAULT.
- This will affect the priority of #GSources created with
- g_task_attach_source() and the scheduling of tasks run in threads,
- and can also be explicitly retrieved later via
- g_task_get_priority().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">the [priority][io-priority] of the request</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_return_on_cancel"
- c:identifier="g_task_set_return_on_cancel"
- version="2.36">
- <doc xml:space="preserve">Sets or clears @task's return-on-cancel flag. This is only
- meaningful for tasks run via g_task_run_in_thread() or
- g_task_run_in_thread_sync().
- If @return_on_cancel is %TRUE, then cancelling @task's
- #GCancellable will immediately cause it to return, as though the
- task's #GTaskThreadFunc had called
- g_task_return_error_if_cancelled() and then returned.
- This allows you to create a cancellable wrapper around an
- uninterruptable function. The #GTaskThreadFunc just needs to be
- careful that it does not modify any externally-visible state after
- it has been cancelled. To do that, the thread should call
- g_task_set_return_on_cancel() again to (atomically) set
- return-on-cancel %FALSE before making externally-visible changes;
- if the task gets cancelled before the return-on-cancel flag could
- be changed, g_task_set_return_on_cancel() will indicate this by
- returning %FALSE.
- You can disable and re-enable this flag multiple times if you wish.
- If the task's #GCancellable is cancelled while return-on-cancel is
- %FALSE, then calling g_task_set_return_on_cancel() to set it %TRUE
- again will cause the task to be cancelled at that point.
- If the task's #GCancellable is already cancelled before you call
- g_task_run_in_thread()/g_task_run_in_thread_sync(), then the
- #GTaskThreadFunc will still be run (for consistency), but the task
- will also be completed right away.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @task's return-on-cancel flag was changed to
- match @return_on_cancel. %FALSE if @task has already been
- cancelled.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="return_on_cancel" transfer-ownership="none">
- <doc xml:space="preserve">whether the task returns automatically when
- it is cancelled.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_source_tag"
- c:identifier="g_task_set_source_tag"
- version="2.36">
- <doc xml:space="preserve">Sets @task's source tag. You can use this to tag a task return
- value with a particular pointer (usually a pointer to the function
- doing the tagging) and then later check it using
- g_task_get_source_tag() (or g_async_result_is_tagged()) in the
- task's "finish" function, to figure out if the response came from a
- particular place.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="source_tag"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an opaque pointer indicating the source of this task</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_task_data"
- c:identifier="g_task_set_task_data"
- version="2.36">
- <doc xml:space="preserve">Sets @task's task data (freeing the existing task data, if any).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </instance-parameter>
- <parameter name="task_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">task-specific data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="task_data_destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">#GDestroyNotify for @task_data</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <property name="completed" version="2.44" transfer-ownership="none">
- <doc xml:space="preserve">Whether the task has completed, meaning its callback (if set) has been
- invoked. This can only happen after g_task_return_pointer(),
- g_task_return_error() or one of the other return functions have been called
- on the task.
- This property is guaranteed to change from %FALSE to %TRUE exactly once.
- The #GObject::notify signal for this change is emitted in the same main
- context as the task’s callback, immediately after that callback is invoked.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- </class>
- <record name="TaskClass"
- c:type="GTaskClass"
- disguised="1"
- glib:is-gtype-struct-for="Task">
- </record>
- <callback name="TaskThreadFunc" c:type="GTaskThreadFunc" version="2.36">
- <doc xml:space="preserve">The prototype for a task function to be run in a thread via
- g_task_run_in_thread() or g_task_run_in_thread_sync().
- If the return-on-cancel flag is set on @task, and @cancellable gets
- cancelled, then the #GTask will be completed immediately (as though
- g_task_return_error_if_cancelled() had been called), without
- waiting for the task function to complete. However, the task
- function will continue running in its thread in the background. The
- function therefore needs to be careful about how it uses
- externally-visible state in this case. See
- g_task_set_return_on_cancel() for more details.
- Other than in that case, @task will be completed when the
- #GTaskThreadFunc returns, not when it calls a
- `g_task_return_` function.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="task" transfer-ownership="none">
- <doc xml:space="preserve">the #GTask</doc>
- <type name="Task" c:type="GTask*"/>
- </parameter>
- <parameter name="source_object" transfer-ownership="none">
- <doc xml:space="preserve">@task's source object</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="task_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">@task's task data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">@task's #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="TcpConnection"
- c:symbol-prefix="tcp_connection"
- c:type="GTcpConnection"
- version="2.22"
- parent="SocketConnection"
- glib:type-name="GTcpConnection"
- glib:get-type="g_tcp_connection_get_type"
- glib:type-struct="TcpConnectionClass">
- <doc xml:space="preserve">This is the subclass of #GSocketConnection that is created
- for TCP/IP sockets.</doc>
- <method name="get_graceful_disconnect"
- c:identifier="g_tcp_connection_get_graceful_disconnect"
- version="2.22">
- <doc xml:space="preserve">Checks if graceful disconnects are used. See
- g_tcp_connection_set_graceful_disconnect().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if graceful disconnect is used on close, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTcpConnection</doc>
- <type name="TcpConnection" c:type="GTcpConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_graceful_disconnect"
- c:identifier="g_tcp_connection_set_graceful_disconnect"
- version="2.22">
- <doc xml:space="preserve">This enables graceful disconnects on close. A graceful disconnect
- means that we signal the receiving end that the connection is terminated
- and wait for it to close the connection before closing the connection.
- A graceful disconnect means that we can be sure that we successfully sent
- all the outstanding data to the other end, or get an error reported.
- However, it also means we have to wait for all the data to reach the
- other side and for it to acknowledge this by closing the socket, which may
- take a while. For this reason it is disabled by default.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTcpConnection</doc>
- <type name="TcpConnection" c:type="GTcpConnection*"/>
- </instance-parameter>
- <parameter name="graceful_disconnect" transfer-ownership="none">
- <doc xml:space="preserve">Whether to do graceful disconnects or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="graceful-disconnect"
- writable="1"
- transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="SocketConnection" c:type="GSocketConnection"/>
- </field>
- <field name="priv">
- <type name="TcpConnectionPrivate" c:type="GTcpConnectionPrivate*"/>
- </field>
- </class>
- <record name="TcpConnectionClass"
- c:type="GTcpConnectionClass"
- glib:is-gtype-struct-for="TcpConnection">
- <field name="parent_class">
- <type name="SocketConnectionClass" c:type="GSocketConnectionClass"/>
- </field>
- </record>
- <record name="TcpConnectionPrivate"
- c:type="GTcpConnectionPrivate"
- disguised="1">
- </record>
- <class name="TcpWrapperConnection"
- c:symbol-prefix="tcp_wrapper_connection"
- c:type="GTcpWrapperConnection"
- parent="TcpConnection"
- glib:type-name="GTcpWrapperConnection"
- glib:get-type="g_tcp_wrapper_connection_get_type"
- glib:type-struct="TcpWrapperConnectionClass">
- <doc xml:space="preserve">A #GTcpWrapperConnection can be used to wrap a #GIOStream that is
- based on a #GSocket, but which is not actually a
- #GSocketConnection. This is used by #GSocketClient so that it can
- always return a #GSocketConnection, even when the connection it has
- actually created is not directly a #GSocketConnection.</doc>
- <constructor name="new"
- c:identifier="g_tcp_wrapper_connection_new"
- version="2.28">
- <doc xml:space="preserve">Wraps @base_io_stream and @socket together as a #GSocketConnection.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GSocketConnection.</doc>
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </return-value>
- <parameters>
- <parameter name="base_io_stream" transfer-ownership="none">
- <doc xml:space="preserve">the #GIOStream to wrap</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GSocket associated with @base_io_stream</doc>
- <type name="Socket" c:type="GSocket*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_base_io_stream"
- c:identifier="g_tcp_wrapper_connection_get_base_io_stream">
- <doc xml:space="preserve">Get's @conn's base #GIOStream</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's base #GIOStream</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTcpWrapperConnection</doc>
- <type name="TcpWrapperConnection" c:type="GTcpWrapperConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="base-io-stream"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="IOStream"/>
- </property>
- <field name="parent_instance">
- <type name="TcpConnection" c:type="GTcpConnection"/>
- </field>
- <field name="priv">
- <type name="TcpWrapperConnectionPrivate"
- c:type="GTcpWrapperConnectionPrivate*"/>
- </field>
- </class>
- <record name="TcpWrapperConnectionClass"
- c:type="GTcpWrapperConnectionClass"
- glib:is-gtype-struct-for="TcpWrapperConnection">
- <field name="parent_class">
- <type name="TcpConnectionClass" c:type="GTcpConnectionClass"/>
- </field>
- </record>
- <record name="TcpWrapperConnectionPrivate"
- c:type="GTcpWrapperConnectionPrivate"
- disguised="1">
- </record>
- <class name="TestDBus"
- c:symbol-prefix="test_dbus"
- c:type="GTestDBus"
- version="2.34"
- parent="GObject.Object"
- glib:type-name="GTestDBus"
- glib:get-type="g_test_dbus_get_type">
- <doc xml:space="preserve">A helper class for testing code which uses D-Bus without touching the user's
- session bus.
- Note that #GTestDBus modifies the user’s environment, calling setenv().
- This is not thread-safe, so all #GTestDBus calls should be completed before
- threads are spawned, or should have appropriate locking to ensure no access
- conflicts to environment variables shared between #GTestDBus and other
- threads.
- ## Creating unit tests using GTestDBus
- Testing of D-Bus services can be tricky because normally we only ever run
- D-Bus services over an existing instance of the D-Bus daemon thus we
- usually don't activate D-Bus services that are not yet installed into the
- target system. The #GTestDBus object makes this easier for us by taking care
- of the lower level tasks such as running a private D-Bus daemon and looking
- up uninstalled services in customizable locations, typically in your source
- code tree.
- The first thing you will need is a separate service description file for the
- D-Bus daemon. Typically a `services` subdirectory of your `tests` directory
- is a good place to put this file.
- The service file should list your service along with an absolute path to the
- uninstalled service executable in your source tree. Using autotools we would
- achieve this by adding a file such as `my-server.service.in` in the services
- directory and have it processed by configure.
- |[
- [D-BUS Service]
- Name=org.gtk.GDBus.Examples.ObjectManager
- Exec=@abs_top_builddir@/gio/tests/gdbus-example-objectmanager-server
- ]|
- You will also need to indicate this service directory in your test
- fixtures, so you will need to pass the path while compiling your
- test cases. Typically this is done with autotools with an added
- preprocessor flag specified to compile your tests such as:
- |[
- -DTEST_SERVICES=\""$(abs_top_builddir)/tests/services"\"
- ]|
- Once you have a service definition file which is local to your source tree,
- you can proceed to set up a GTest fixture using the #GTestDBus scaffolding.
- An example of a test fixture for D-Bus services can be found
- here:
- [gdbus-test-fixture.c](https://git.gnome.org/browse/glib/tree/gio/tests/gdbus-test-fixture.c)
- Note that these examples only deal with isolating the D-Bus aspect of your
- service. To successfully run isolated unit tests on your service you may need
- some additional modifications to your test case fixture. For example; if your
- service uses GSettings and installs a schema then it is important that your test service
- not load the schema in the ordinary installed location (chances are that your service
- and schema files are not yet installed, or worse; there is an older version of the
- schema file sitting in the install location).
- Most of the time we can work around these obstacles using the
- environment. Since the environment is inherited by the D-Bus daemon
- created by #GTestDBus and then in turn inherited by any services the
- D-Bus daemon activates, using the setup routine for your fixture is
- a practical place to help sandbox your runtime environment. For the
- rather typical GSettings case we can work around this by setting
- `GSETTINGS_SCHEMA_DIR` to the in tree directory holding your schemas
- in the above fixture_setup() routine.
- The GSettings schemas need to be locally pre-compiled for this to work. This can be achieved
- by compiling the schemas locally as a step before running test cases, an autotools setup might
- do the following in the directory holding schemas:
- |[
- all-am:
- $(GLIB_COMPILE_SCHEMAS) .
- CLEANFILES += gschemas.compiled
- ]|</doc>
- <constructor name="new" c:identifier="g_test_dbus_new">
- <doc xml:space="preserve">Create a new #GTestDBus object.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GTestDBus.</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBusFlags</doc>
- <type name="TestDBusFlags" c:type="GTestDBusFlags"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="unset" c:identifier="g_test_dbus_unset">
- <doc xml:space="preserve">Unset DISPLAY and DBUS_SESSION_BUS_ADDRESS env variables to ensure the test
- won't use user's session bus.
- This is useful for unit tests that want to verify behaviour when no session
- bus is running. It is not necessary to call this if unit test already calls
- g_test_dbus_up() before acquiring the session bus.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <method name="add_service_dir"
- c:identifier="g_test_dbus_add_service_dir">
- <doc xml:space="preserve">Add a path where dbus-daemon will look up .service files. This can't be
- called after g_test_dbus_up().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBus</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">path to a directory containing .service files</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="down" c:identifier="g_test_dbus_down">
- <doc xml:space="preserve">Stop the session bus started by g_test_dbus_up().
- This will wait for the singleton returned by g_bus_get() or g_bus_get_sync()
- is destroyed. This is done to ensure that the next unit test won't get a
- leaked singleton from this test.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBus</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_bus_address"
- c:identifier="g_test_dbus_get_bus_address">
- <doc xml:space="preserve">Get the address on which dbus-daemon is running. If g_test_dbus_up() has not
- been called yet, %NULL is returned. This can be used with
- g_dbus_connection_new_for_address().</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the address of the bus, or %NULL.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBus</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags" c:identifier="g_test_dbus_get_flags">
- <doc xml:space="preserve">Get the flags of the #GTestDBus object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the value of #GTestDBus:flags property</doc>
- <type name="TestDBusFlags" c:type="GTestDBusFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBus</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stop" c:identifier="g_test_dbus_stop">
- <doc xml:space="preserve">Stop the session bus started by g_test_dbus_up().
- Unlike g_test_dbus_down(), this won't verify the #GDBusConnection
- singleton returned by g_bus_get() or g_bus_get_sync() is destroyed. Unit
- tests wanting to verify behaviour after the session bus has been stopped
- can use this function but should still call g_test_dbus_down() when done.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBus</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="up" c:identifier="g_test_dbus_up">
- <doc xml:space="preserve">Start a dbus-daemon instance and set DBUS_SESSION_BUS_ADDRESS. After this
- call, it is safe for unit tests to start sending messages on the session bus.
- If this function is called from setup callback of g_test_add(),
- g_test_dbus_down() must be called in its teardown callback.
- If this function is called from unit test's main(), then g_test_dbus_down()
- must be called after g_test_run().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTestDBus</doc>
- <type name="TestDBus" c:type="GTestDBus*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="flags"
- version="2.34"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">#GTestDBusFlags specifying the behaviour of the D-Bus session.</doc>
- <type name="TestDBusFlags"/>
- </property>
- </class>
- <bitfield name="TestDBusFlags"
- version="2.34"
- glib:type-name="GTestDBusFlags"
- glib:get-type="g_test_dbus_flags_get_type"
- c:type="GTestDBusFlags">
- <doc xml:space="preserve">Flags to define future #GTestDBus behaviour.</doc>
- <member name="none"
- value="0"
- c:identifier="G_TEST_DBUS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags.</doc>
- </member>
- </bitfield>
- <class name="ThemedIcon"
- c:symbol-prefix="themed_icon"
- c:type="GThemedIcon"
- parent="GObject.Object"
- glib:type-name="GThemedIcon"
- glib:get-type="g_themed_icon_get_type"
- glib:type-struct="ThemedIconClass">
- <doc xml:space="preserve">#GThemedIcon is an implementation of #GIcon that supports icon themes.
- #GThemedIcon contains a list of all of the icons present in an icon
- theme, so that icons can be looked up quickly. #GThemedIcon does
- not provide actual pixmaps for icons, just the icon names.
- Ideally something like gtk_icon_theme_choose_icon() should be used to
- resolve the list of names so that fallback icons work nicely with
- themes that inherit other themes.</doc>
- <implements name="Icon"/>
- <constructor name="new" c:identifier="g_themed_icon_new">
- <doc xml:space="preserve">Creates a new themed icon for @iconname.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GThemedIcon.</doc>
- <type name="ThemedIcon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="iconname" transfer-ownership="none">
- <doc xml:space="preserve">a string containing an icon name.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_names"
- c:identifier="g_themed_icon_new_from_names">
- <doc xml:space="preserve">Creates a new themed icon for @iconnames.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GThemedIcon</doc>
- <type name="ThemedIcon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="iconnames" transfer-ownership="none">
- <doc xml:space="preserve">an array of strings containing icon names.</doc>
- <array length="1" zero-terminated="0" c:type="char**">
- <type name="utf8" c:type="char*"/>
- </array>
- </parameter>
- <parameter name="len" transfer-ownership="none">
- <doc xml:space="preserve">the length of the @iconnames array, or -1 if @iconnames is
- %NULL-terminated</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_with_default_fallbacks"
- c:identifier="g_themed_icon_new_with_default_fallbacks">
- <doc xml:space="preserve">Creates a new themed icon for @iconname, and all the names
- that can be created by shortening @iconname at '-' characters.
- In the following example, @icon1 and @icon2 are equivalent:
- |[<!-- language="C" -->
- const char *names[] = {
- "gnome-dev-cdrom-audio",
- "gnome-dev-cdrom",
- "gnome-dev",
- "gnome"
- };
- icon1 = g_themed_icon_new_from_names (names, 4);
- icon2 = g_themed_icon_new_with_default_fallbacks ("gnome-dev-cdrom-audio");
- ]|</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GThemedIcon.</doc>
- <type name="ThemedIcon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="iconname" transfer-ownership="none">
- <doc xml:space="preserve">a string containing an icon name</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append_name" c:identifier="g_themed_icon_append_name">
- <doc xml:space="preserve">Append a name to the list of icons from within @icon.
- Note that doing so invalidates the hash computed by prior calls
- to g_icon_hash().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GThemedIcon</doc>
- <type name="ThemedIcon" c:type="GThemedIcon*"/>
- </instance-parameter>
- <parameter name="iconname" transfer-ownership="none">
- <doc xml:space="preserve">name of icon to append to list of icons from within @icon.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_names" c:identifier="g_themed_icon_get_names">
- <doc xml:space="preserve">Gets the names of icons from within @icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a list of icon names.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GThemedIcon.</doc>
- <type name="ThemedIcon" c:type="GThemedIcon*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="prepend_name"
- c:identifier="g_themed_icon_prepend_name"
- version="2.18">
- <doc xml:space="preserve">Prepend a name to the list of icons from within @icon.
- Note that doing so invalidates the hash computed by prior calls
- to g_icon_hash().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">a #GThemedIcon</doc>
- <type name="ThemedIcon" c:type="GThemedIcon*"/>
- </instance-parameter>
- <parameter name="iconname" transfer-ownership="none">
- <doc xml:space="preserve">name of icon to prepend to list of icons from within @icon.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <property name="name"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The icon name.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="names"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A %NULL-terminated array of icon names.</doc>
- <array>
- <type name="utf8"/>
- </array>
- </property>
- <property name="use-default-fallbacks"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether to use the default fallbacks found by shortening the icon name
- at '-' characters. If the "names" array has more than one element,
- ignores any past the first.
- For example, if the icon name was "gnome-dev-cdrom-audio", the array
- would become
- |[<!-- language="C" -->
- {
- "gnome-dev-cdrom-audio",
- "gnome-dev-cdrom",
- "gnome-dev",
- "gnome",
- NULL
- };
- ]|</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- </class>
- <record name="ThemedIconClass"
- c:type="GThemedIconClass"
- disguised="1"
- glib:is-gtype-struct-for="ThemedIcon">
- </record>
- <class name="ThreadedSocketService"
- c:symbol-prefix="threaded_socket_service"
- c:type="GThreadedSocketService"
- version="2.22"
- parent="SocketService"
- glib:type-name="GThreadedSocketService"
- glib:get-type="g_threaded_socket_service_get_type"
- glib:type-struct="ThreadedSocketServiceClass">
- <doc xml:space="preserve">A #GThreadedSocketService is a simple subclass of #GSocketService
- that handles incoming connections by creating a worker thread and
- dispatching the connection to it by emitting the
- #GThreadedSocketService::run signal in the new thread.
- The signal handler may perform blocking IO and need not return
- until the connection is closed.
- The service is implemented using a thread pool, so there is a
- limited amount of threads available to serve incoming requests.
- The service automatically stops the #GSocketService from accepting
- new connections when all threads are busy.
- As with #GSocketService, you may connect to #GThreadedSocketService::run,
- or subclass and override the default handler.</doc>
- <constructor name="new"
- c:identifier="g_threaded_socket_service_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GThreadedSocketService with no listeners. Listeners
- must be added with one of the #GSocketListener "add" methods.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GSocketService.</doc>
- <type name="SocketService" c:type="GSocketService*"/>
- </return-value>
- <parameters>
- <parameter name="max_threads" transfer-ownership="none">
- <doc xml:space="preserve">the maximal number of threads to execute concurrently
- handling incoming clients, -1 means no limit</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="run">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="service" transfer-ownership="none">
- <type name="ThreadedSocketService"
- c:type="GThreadedSocketService*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </parameter>
- <parameter name="source_object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <property name="max-threads"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- <field name="parent_instance">
- <type name="SocketService" c:type="GSocketService"/>
- </field>
- <field name="priv">
- <type name="ThreadedSocketServicePrivate"
- c:type="GThreadedSocketServicePrivate*"/>
- </field>
- <glib:signal name="run" when="last">
- <doc xml:space="preserve">The ::run signal is emitted in a worker thread in response to an
- incoming connection. This thread is dedicated to handling
- @connection and may perform blocking IO. The signal handler need
- not return until the connection is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to stop further signal handlers from being called</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a new #GSocketConnection object.</doc>
- <type name="SocketConnection"/>
- </parameter>
- <parameter name="source_object" transfer-ownership="none">
- <doc xml:space="preserve">the source_object passed to g_socket_listener_add_address().</doc>
- <type name="GObject.Object"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ThreadedSocketServiceClass"
- c:type="GThreadedSocketServiceClass"
- glib:is-gtype-struct-for="ThreadedSocketService">
- <field name="parent_class">
- <type name="SocketServiceClass" c:type="GSocketServiceClass"/>
- </field>
- <field name="run">
- <callback name="run">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="service" transfer-ownership="none">
- <type name="ThreadedSocketService"
- c:type="GThreadedSocketService*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <type name="SocketConnection" c:type="GSocketConnection*"/>
- </parameter>
- <parameter name="source_object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="ThreadedSocketServicePrivate"
- c:type="GThreadedSocketServicePrivate"
- disguised="1">
- </record>
- <enumeration name="TlsAuthenticationMode"
- version="2.28"
- glib:type-name="GTlsAuthenticationMode"
- glib:get-type="g_tls_authentication_mode_get_type"
- c:type="GTlsAuthenticationMode">
- <doc xml:space="preserve">The client authentication mode for a #GTlsServerConnection.</doc>
- <member name="none"
- value="0"
- c:identifier="G_TLS_AUTHENTICATION_NONE"
- glib:nick="none">
- <doc xml:space="preserve">client authentication not required</doc>
- </member>
- <member name="requested"
- value="1"
- c:identifier="G_TLS_AUTHENTICATION_REQUESTED"
- glib:nick="requested">
- <doc xml:space="preserve">client authentication is requested</doc>
- </member>
- <member name="required"
- value="2"
- c:identifier="G_TLS_AUTHENTICATION_REQUIRED"
- glib:nick="required">
- <doc xml:space="preserve">client authentication is required</doc>
- </member>
- </enumeration>
- <interface name="TlsBackend"
- c:symbol-prefix="tls_backend"
- c:type="GTlsBackend"
- version="2.28"
- glib:type-name="GTlsBackend"
- glib:get-type="g_tls_backend_get_type"
- glib:type-struct="TlsBackendInterface">
- <doc xml:space="preserve">TLS (Transport Layer Security, aka SSL) and DTLS backend.</doc>
- <function name="get_default"
- c:identifier="g_tls_backend_get_default"
- version="2.28">
- <doc xml:space="preserve">Gets the default #GTlsBackend for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </return-value>
- </function>
- <virtual-method name="get_default_database"
- invoker="get_default_database"
- version="2.30">
- <doc xml:space="preserve">Gets the default #GTlsDatabase used to verify TLS connections.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the default database, which should be
- unreffed when done.</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="supports_dtls"
- invoker="supports_dtls"
- version="2.48">
- <doc xml:space="preserve">Checks if DTLS is supported. DTLS support may not be available even if TLS
- support is available, and vice-versa.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether DTLS is supported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="supports_tls"
- invoker="supports_tls"
- version="2.28">
- <doc xml:space="preserve">Checks if TLS is supported; if this returns %FALSE for the default
- #GTlsBackend, it means no "real" TLS backend is available.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether or not TLS is supported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="get_certificate_type"
- c:identifier="g_tls_backend_get_certificate_type"
- version="2.28">
- <doc xml:space="preserve">Gets the #GType of @backend's #GTlsCertificate implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of @backend's #GTlsCertificate
- implementation.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_client_connection_type"
- c:identifier="g_tls_backend_get_client_connection_type"
- version="2.28">
- <doc xml:space="preserve">Gets the #GType of @backend's #GTlsClientConnection implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of @backend's #GTlsClientConnection
- implementation.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_default_database"
- c:identifier="g_tls_backend_get_default_database"
- version="2.30">
- <doc xml:space="preserve">Gets the default #GTlsDatabase used to verify TLS connections.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the default database, which should be
- unreffed when done.</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_dtls_client_connection_type"
- c:identifier="g_tls_backend_get_dtls_client_connection_type"
- version="2.48">
- <doc xml:space="preserve">Gets the #GType of @backend’s #GDtlsClientConnection implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of @backend’s #GDtlsClientConnection
- implementation.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_dtls_server_connection_type"
- c:identifier="g_tls_backend_get_dtls_server_connection_type"
- version="2.48">
- <doc xml:space="preserve">Gets the #GType of @backend’s #GDtlsServerConnection implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of @backend’s #GDtlsServerConnection
- implementation.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_file_database_type"
- c:identifier="g_tls_backend_get_file_database_type"
- version="2.30">
- <doc xml:space="preserve">Gets the #GType of @backend's #GTlsFileDatabase implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of backend's #GTlsFileDatabase implementation.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_server_connection_type"
- c:identifier="g_tls_backend_get_server_connection_type"
- version="2.28">
- <doc xml:space="preserve">Gets the #GType of @backend's #GTlsServerConnection implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GType of @backend's #GTlsServerConnection
- implementation.</doc>
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="supports_dtls"
- c:identifier="g_tls_backend_supports_dtls"
- version="2.48">
- <doc xml:space="preserve">Checks if DTLS is supported. DTLS support may not be available even if TLS
- support is available, and vice-versa.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether DTLS is supported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="supports_tls"
- c:identifier="g_tls_backend_supports_tls"
- version="2.28">
- <doc xml:space="preserve">Checks if TLS is supported; if this returns %FALSE for the default
- #GTlsBackend, it means no "real" TLS backend is available.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether or not TLS is supported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </instance-parameter>
- </parameters>
- </method>
- </interface>
- <record name="TlsBackendInterface"
- c:type="GTlsBackendInterface"
- glib:is-gtype-struct-for="TlsBackend"
- version="2.28">
- <doc xml:space="preserve">Provides an interface for describing TLS-related types.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="supports_tls">
- <callback name="supports_tls">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether or not TLS is supported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_certificate_type">
- <callback name="get_certificate_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </callback>
- </field>
- <field name="get_client_connection_type">
- <callback name="get_client_connection_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </callback>
- </field>
- <field name="get_server_connection_type">
- <callback name="get_server_connection_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </callback>
- </field>
- <field name="get_file_database_type">
- <callback name="get_file_database_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </callback>
- </field>
- <field name="get_default_database">
- <callback name="get_default_database">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the default database, which should be
- unreffed when done.</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="supports_dtls">
- <callback name="supports_dtls">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether DTLS is supported</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="backend" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_dtls_client_connection_type">
- <callback name="get_dtls_client_connection_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </callback>
- </field>
- <field name="get_dtls_server_connection_type">
- <callback name="get_dtls_server_connection_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </callback>
- </field>
- </record>
- <class name="TlsCertificate"
- c:symbol-prefix="tls_certificate"
- c:type="GTlsCertificate"
- version="2.28"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GTlsCertificate"
- glib:get-type="g_tls_certificate_get_type"
- glib:type-struct="TlsCertificateClass">
- <doc xml:space="preserve">A certificate used for TLS authentication and encryption.
- This can represent either a certificate only (eg, the certificate
- received by a client from a server), or the combination of
- a certificate and a private key (which is needed when acting as a
- #GTlsServerConnection).</doc>
- <constructor name="new_from_file"
- c:identifier="g_tls_certificate_new_from_file"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a #GTlsCertificate from the PEM-encoded data in @file. The
- returned certificate will be the first certificate found in @file. As
- of GLib 2.44, if @file contains more certificates it will try to load
- a certificate chain. All certificates will be verified in the order
- found (top-level certificate should be the last one in the file) and
- the #GTlsCertificate:issuer property of each certificate will be set
- accordingly if the verification succeeds. If any certificate in the
- chain cannot be verified, the first certificate in the file will
- still be returned.
- If @file cannot be read or parsed, the function will return %NULL and
- set @error. Otherwise, this behaves like
- g_tls_certificate_new_from_pem().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new certificate, or %NULL on error</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">file containing a PEM-encoded certificate to import</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_files"
- c:identifier="g_tls_certificate_new_from_files"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a #GTlsCertificate from the PEM-encoded data in @cert_file
- and @key_file. The returned certificate will be the first certificate
- found in @cert_file. As of GLib 2.44, if @cert_file contains more
- certificates it will try to load a certificate chain. All
- certificates will be verified in the order found (top-level
- certificate should be the last one in the file) and the
- #GTlsCertificate:issuer property of each certificate will be set
- accordingly if the verification succeeds. If any certificate in the
- chain cannot be verified, the first certificate in the file will
- still be returned.
- If either file cannot be read or parsed, the function will return
- %NULL and set @error. Otherwise, this behaves like
- g_tls_certificate_new_from_pem().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new certificate, or %NULL on error</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="cert_file" transfer-ownership="none">
- <doc xml:space="preserve">file containing one or more PEM-encoded certificates to
- import</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="key_file" transfer-ownership="none">
- <doc xml:space="preserve">file containing a PEM-encoded private key to import</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_pem"
- c:identifier="g_tls_certificate_new_from_pem"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a #GTlsCertificate from the PEM-encoded data in @data. If
- @data includes both a certificate and a private key, then the
- returned certificate will include the private key data as well. (See
- the #GTlsCertificate:private-key-pem property for information about
- supported formats.)
- The returned certificate will be the first certificate found in
- @data. As of GLib 2.44, if @data contains more certificates it will
- try to load a certificate chain. All certificates will be verified in
- the order found (top-level certificate should be the last one in the
- file) and the #GTlsCertificate:issuer property of each certificate
- will be set accordingly if the verification succeeds. If any
- certificate in the chain cannot be verified, the first certificate in
- the file will still be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new certificate, or %NULL if @data is invalid</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <doc xml:space="preserve">PEM-encoded certificate data</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of @data, or -1 if it's 0-terminated.</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="list_new_from_file"
- c:identifier="g_tls_certificate_list_new_from_file"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates one or more #GTlsCertificates from the PEM-encoded
- data in @file. If @file cannot be read or parsed, the function will
- return %NULL and set @error. If @file does not contain any
- PEM-encoded certificates, this will return an empty list and not
- set @error.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a
- #GList containing #GTlsCertificate objects. You must free the list
- and its contents when you are done with it.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="file" transfer-ownership="none">
- <doc xml:space="preserve">file containing PEM-encoded certificates to import</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="verify" invoker="verify" version="2.28">
- <doc xml:space="preserve">This verifies @cert and returns a set of #GTlsCertificateFlags
- indicating any problems found with it. This can be used to verify a
- certificate outside the context of making a connection, or to
- check a certificate against a CA that is not part of the system
- CA database.
- If @identity is not %NULL, @cert's name(s) will be compared against
- it, and %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the return
- value if it does not match. If @identity is %NULL, that bit will
- never be set in the return value.
- If @trusted_ca is not %NULL, then @cert (or one of the certificates
- in its chain) must be signed by it, or else
- %G_TLS_CERTIFICATE_UNKNOWN_CA will be set in the return value. If
- @trusted_ca is %NULL, that bit will never be set in the return
- value.
- (All other #GTlsCertificateFlags values will always be set or unset
- as appropriate.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="cert" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </instance-parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="trusted_ca"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the certificate of a trusted authority</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_issuer"
- c:identifier="g_tls_certificate_get_issuer"
- version="2.28">
- <doc xml:space="preserve">Gets the #GTlsCertificate representing @cert's issuer, if known</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The certificate of @cert's issuer,
- or %NULL if @cert is self-signed or signed with an unknown
- certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cert" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_same"
- c:identifier="g_tls_certificate_is_same"
- version="2.34">
- <doc xml:space="preserve">Check if two #GTlsCertificate objects represent the same certificate.
- The raw DER byte data of the two certificates are checked for equality.
- This has the effect that two certificates may compare equal even if
- their #GTlsCertificate:issuer, #GTlsCertificate:private-key, or
- #GTlsCertificate:private-key-pem properties differ.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether the same or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cert_one" transfer-ownership="none">
- <doc xml:space="preserve">first certificate to compare</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </instance-parameter>
- <parameter name="cert_two" transfer-ownership="none">
- <doc xml:space="preserve">second certificate to compare</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="verify"
- c:identifier="g_tls_certificate_verify"
- version="2.28">
- <doc xml:space="preserve">This verifies @cert and returns a set of #GTlsCertificateFlags
- indicating any problems found with it. This can be used to verify a
- certificate outside the context of making a connection, or to
- check a certificate against a CA that is not part of the system
- CA database.
- If @identity is not %NULL, @cert's name(s) will be compared against
- it, and %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the return
- value if it does not match. If @identity is %NULL, that bit will
- never be set in the return value.
- If @trusted_ca is not %NULL, then @cert (or one of the certificates
- in its chain) must be signed by it, or else
- %G_TLS_CERTIFICATE_UNKNOWN_CA will be set in the return value. If
- @trusted_ca is %NULL, that bit will never be set in the return
- value.
- (All other #GTlsCertificateFlags values will always be set or unset
- as appropriate.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="cert" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </instance-parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="trusted_ca"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the certificate of a trusted authority</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </method>
- <property name="certificate"
- version="2.28"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The DER (binary) encoded representation of the certificate.
- This property and the #GTlsCertificate:certificate-pem property
- represent the same data, just in different forms.</doc>
- <array name="GLib.ByteArray">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </property>
- <property name="certificate-pem"
- version="2.28"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The PEM (ASCII) encoded representation of the certificate.
- This property and the #GTlsCertificate:certificate
- property represent the same data, just in different forms.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="issuer"
- version="2.28"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GTlsCertificate representing the entity that issued this
- certificate. If %NULL, this means that the certificate is either
- self-signed, or else the certificate of the issuer is not
- available.</doc>
- <type name="TlsCertificate"/>
- </property>
- <property name="private-key"
- version="2.28"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The DER (binary) encoded representation of the certificate's
- private key, in either PKCS#1 format or unencrypted PKCS#8
- format. This property (or the #GTlsCertificate:private-key-pem
- property) can be set when constructing a key (eg, from a file),
- but cannot be read.
- PKCS#8 format is supported since 2.32; earlier releases only
- support PKCS#1. You can use the `openssl rsa`
- tool to convert PKCS#8 keys to PKCS#1.</doc>
- <array name="GLib.ByteArray">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </property>
- <property name="private-key-pem"
- version="2.28"
- readable="0"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The PEM (ASCII) encoded representation of the certificate's
- private key in either PKCS#1 format ("`BEGIN RSA PRIVATE
- KEY`") or unencrypted PKCS#8 format ("`BEGIN
- PRIVATE KEY`"). This property (or the
- #GTlsCertificate:private-key property) can be set when
- constructing a key (eg, from a file), but cannot be read.
- PKCS#8 format is supported since 2.32; earlier releases only
- support PKCS#1. You can use the `openssl rsa`
- tool to convert PKCS#8 keys to PKCS#1.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="TlsCertificatePrivate" c:type="GTlsCertificatePrivate*"/>
- </field>
- </class>
- <record name="TlsCertificateClass"
- c:type="GTlsCertificateClass"
- glib:is-gtype-struct-for="TlsCertificate">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="verify">
- <callback name="verify">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <parameter name="cert" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="trusted_ca"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the certificate of a trusted authority</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <bitfield name="TlsCertificateFlags"
- version="2.28"
- glib:type-name="GTlsCertificateFlags"
- glib:get-type="g_tls_certificate_flags_get_type"
- c:type="GTlsCertificateFlags">
- <doc xml:space="preserve">A set of flags describing TLS certification validation. This can be
- used to set which validation steps to perform (eg, with
- g_tls_client_connection_set_validation_flags()), or to describe why
- a particular certificate was rejected (eg, in
- #GTlsConnection::accept-certificate).</doc>
- <member name="unknown_ca"
- value="1"
- c:identifier="G_TLS_CERTIFICATE_UNKNOWN_CA"
- glib:nick="unknown-ca">
- <doc xml:space="preserve">The signing certificate authority is
- not known.</doc>
- </member>
- <member name="bad_identity"
- value="2"
- c:identifier="G_TLS_CERTIFICATE_BAD_IDENTITY"
- glib:nick="bad-identity">
- <doc xml:space="preserve">The certificate does not match the
- expected identity of the site that it was retrieved from.</doc>
- </member>
- <member name="not_activated"
- value="4"
- c:identifier="G_TLS_CERTIFICATE_NOT_ACTIVATED"
- glib:nick="not-activated">
- <doc xml:space="preserve">The certificate's activation time
- is still in the future</doc>
- </member>
- <member name="expired"
- value="8"
- c:identifier="G_TLS_CERTIFICATE_EXPIRED"
- glib:nick="expired">
- <doc xml:space="preserve">The certificate has expired</doc>
- </member>
- <member name="revoked"
- value="16"
- c:identifier="G_TLS_CERTIFICATE_REVOKED"
- glib:nick="revoked">
- <doc xml:space="preserve">The certificate has been revoked
- according to the #GTlsConnection's certificate revocation list.</doc>
- </member>
- <member name="insecure"
- value="32"
- c:identifier="G_TLS_CERTIFICATE_INSECURE"
- glib:nick="insecure">
- <doc xml:space="preserve">The certificate's algorithm is
- considered insecure.</doc>
- </member>
- <member name="generic_error"
- value="64"
- c:identifier="G_TLS_CERTIFICATE_GENERIC_ERROR"
- glib:nick="generic-error">
- <doc xml:space="preserve">Some other error occurred validating
- the certificate</doc>
- </member>
- <member name="validate_all"
- value="127"
- c:identifier="G_TLS_CERTIFICATE_VALIDATE_ALL"
- glib:nick="validate-all">
- <doc xml:space="preserve">the combination of all of the above
- flags</doc>
- </member>
- </bitfield>
- <record name="TlsCertificatePrivate"
- c:type="GTlsCertificatePrivate"
- disguised="1">
- </record>
- <enumeration name="TlsCertificateRequestFlags"
- version="2.40"
- glib:type-name="GTlsCertificateRequestFlags"
- glib:get-type="g_tls_certificate_request_flags_get_type"
- c:type="GTlsCertificateRequestFlags">
- <doc xml:space="preserve">Flags for g_tls_interaction_request_certificate(),
- g_tls_interaction_request_certificate_async(), and
- g_tls_interaction_invoke_request_certificate().</doc>
- <member name="none"
- value="0"
- c:identifier="G_TLS_CERTIFICATE_REQUEST_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags</doc>
- </member>
- </enumeration>
- <interface name="TlsClientConnection"
- c:symbol-prefix="tls_client_connection"
- c:type="GTlsClientConnection"
- version="2.28"
- glib:type-name="GTlsClientConnection"
- glib:get-type="g_tls_client_connection_get_type"
- glib:type-struct="TlsClientConnectionInterface">
- <doc xml:space="preserve">#GTlsClientConnection is the client-side subclass of
- #GTlsConnection, representing a client-side TLS connection.</doc>
- <prerequisite name="TlsConnection"/>
- <function name="new"
- c:identifier="g_tls_client_connection_new"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a new #GTlsClientConnection wrapping @base_io_stream (which
- must have pollable input and output streams) which is assumed to
- communicate with the server identified by @server_identity.
- See the documentation for #GTlsConnection:base-io-stream for restrictions
- on when application code can run operations on the @base_io_stream after
- this function has returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GTlsClientConnection, or %NULL on error</doc>
- <type name="TlsClientConnection" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_io_stream" transfer-ownership="none">
- <doc xml:space="preserve">the #GIOStream to wrap</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="server_identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected identity of the server</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="copy_session_state"
- invoker="copy_session_state"
- version="2.46">
- <doc xml:space="preserve">Copies session state from one connection to another. This is
- not normally needed, but may be used when the same session
- needs to be used between different endpoints as is required
- by some protocols such as FTP over TLS. @source should have
- already completed a handshake, and @conn should not have
- completed a handshake.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="copy_session_state"
- c:identifier="g_tls_client_connection_copy_session_state"
- version="2.46">
- <doc xml:space="preserve">Copies session state from one connection to another. This is
- not normally needed, but may be used when the same session
- needs to be used between different endpoints as is required
- by some protocols such as FTP over TLS. @source should have
- already completed a handshake, and @conn should not have
- completed a handshake.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_accepted_cas"
- c:identifier="g_tls_client_connection_get_accepted_cas"
- version="2.28">
- <doc xml:space="preserve">Gets the list of distinguished names of the Certificate Authorities
- that the server will accept certificates from. This will be set
- during the TLS handshake if the server requests a certificate.
- Otherwise, it will be %NULL.
- Each item in the list is a #GByteArray which contains the complete
- subject DN of the certificate authority.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the list of
- CA DNs. You should unref each element with g_byte_array_unref() and then
- the free the list with g_list_free().</doc>
- <type name="GLib.List" c:type="GList*">
- <array name="GLib.ByteArray">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_server_identity"
- c:identifier="g_tls_client_connection_get_server_identity"
- version="2.28">
- <doc xml:space="preserve">Gets @conn's expected server identity</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable describing the
- expected server identity, or %NULL if the expected identity is not
- known.</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_use_ssl3"
- c:identifier="g_tls_client_connection_get_use_ssl3"
- version="2.28">
- <doc xml:space="preserve">Gets whether @conn will use SSL 3.0 rather than the
- highest-supported version of TLS; see
- g_tls_client_connection_set_use_ssl3().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @conn will use SSL 3.0</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_validation_flags"
- c:identifier="g_tls_client_connection_get_validation_flags"
- version="2.28">
- <doc xml:space="preserve">Gets @conn's validation flags</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the validation flags</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_server_identity"
- c:identifier="g_tls_client_connection_set_server_identity"
- version="2.28">
- <doc xml:space="preserve">Sets @conn's expected server identity, which is used both to tell
- servers on virtual hosts which certificate to present, and also
- to let @conn know what name to look for in the certificate when
- performing %G_TLS_CERTIFICATE_BAD_IDENTITY validation, if enabled.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- <parameter name="identity" transfer-ownership="none">
- <doc xml:space="preserve">a #GSocketConnectable describing the expected server identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_use_ssl3"
- c:identifier="g_tls_client_connection_set_use_ssl3"
- version="2.28">
- <doc xml:space="preserve">If @use_ssl3 is %TRUE, this forces @conn to use SSL 3.0 rather than
- trying to properly negotiate the right version of TLS or SSL to use.
- This can be used when talking to servers that do not implement the
- fallbacks correctly and which will therefore fail to handshake with
- a "modern" TLS handshake attempt.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- <parameter name="use_ssl3" transfer-ownership="none">
- <doc xml:space="preserve">whether to use SSL 3.0</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_validation_flags"
- c:identifier="g_tls_client_connection_set_validation_flags"
- version="2.28">
- <doc xml:space="preserve">Sets @conn's validation flags, to override the default set of
- checks performed when validating a server certificate. By default,
- %G_TLS_CERTIFICATE_VALIDATE_ALL is used.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the #GTlsCertificateFlags to use</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </method>
- <property name="accepted-cas" version="2.28" transfer-ownership="none">
- <doc xml:space="preserve">A list of the distinguished names of the Certificate Authorities
- that the server will accept client certificates signed by. If the
- server requests a client certificate during the handshake, then
- this property will be set after the handshake completes.
- Each item in the list is a #GByteArray which contains the complete
- subject DN of the certificate authority.</doc>
- <type name="GLib.List" c:type="gpointer">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </property>
- <property name="server-identity"
- version="2.28"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GSocketConnectable describing the identity of the server that
- is expected on the other end of the connection.
- If the %G_TLS_CERTIFICATE_BAD_IDENTITY flag is set in
- #GTlsClientConnection:validation-flags, this object will be used
- to determine the expected identify of the remote end of the
- connection; if #GTlsClientConnection:server-identity is not set,
- or does not match the identity presented by the server, then the
- %G_TLS_CERTIFICATE_BAD_IDENTITY validation will fail.
- In addition to its use in verifying the server certificate,
- this is also used to give a hint to the server about what
- certificate we expect, which is useful for servers that serve
- virtual hosts.</doc>
- <type name="SocketConnectable"/>
- </property>
- <property name="use-ssl3"
- version="2.28"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">If %TRUE, tells the connection to use a fallback version of TLS
- or SSL, rather than trying to negotiate the best version of TLS
- to use. This can be used when talking to servers that don't
- implement version negotiation correctly and therefore refuse to
- handshake at all with a "modern" TLS handshake.
- Despite the property name, the fallback version is not
- necessarily SSL 3.0; if SSL 3.0 has been disabled, the
- #GTlsClientConnection will use the next highest available version
- (normally TLS 1.0) as the fallback version.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="validation-flags"
- version="2.28"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">What steps to perform when validating a certificate received from
- a server. Server certificates that fail to validate in all of the
- ways indicated here will be rejected unless the application
- overrides the default via #GTlsConnection::accept-certificate.</doc>
- <type name="TlsCertificateFlags"/>
- </property>
- </interface>
- <record name="TlsClientConnectionInterface"
- c:type="GTlsClientConnectionInterface"
- glib:is-gtype-struct-for="TlsClientConnection"
- version="2.26">
- <doc xml:space="preserve">vtable for a #GTlsClientConnection implementation.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="copy_session_state">
- <callback name="copy_session_state">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsClientConnection</doc>
- <type name="TlsClientConnection" c:type="GTlsClientConnection*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="TlsConnection"
- c:symbol-prefix="tls_connection"
- c:type="GTlsConnection"
- version="2.28"
- parent="IOStream"
- abstract="1"
- glib:type-name="GTlsConnection"
- glib:get-type="g_tls_connection_get_type"
- glib:type-struct="TlsConnectionClass">
- <doc xml:space="preserve">#GTlsConnection is the base TLS connection class type, which wraps
- a #GIOStream and provides TLS encryption on top of it. Its
- subclasses, #GTlsClientConnection and #GTlsServerConnection,
- implement client-side and server-side TLS, respectively.
- For DTLS (Datagram TLS) support, see #GDtlsConnection.</doc>
- <virtual-method name="accept_certificate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="peer_cert" transfer-ownership="none">
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handshake"
- invoker="handshake"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Attempts a TLS handshake on @conn.
- On the client side, it is never necessary to call this method;
- although the connection needs to perform a handshake after
- connecting (or after sending a "STARTTLS"-type command) and may
- need to rehandshake later if the server requests it,
- #GTlsConnection will handle this for you automatically when you try
- to send or receive data on the connection. However, you can call
- g_tls_connection_handshake() manually if you want to know for sure
- whether the initial handshake succeeded or failed (as opposed to
- just immediately trying to write to @conn's output stream, in which
- case if it fails, it may not be possible to tell if it failed
- before or after completing the handshake).
- Likewise, on the server side, although a handshake is necessary at
- the beginning of the communication, you do not need to call this
- function explicitly unless you want clearer error reporting.
- However, you may call g_tls_connection_handshake() later on to
- renegotiate parameters (encryption methods, etc) with the client.
- #GTlsConnection::accept_certificate may be emitted during the
- handshake.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handshake_async"
- invoker="handshake_async"
- version="2.28">
- <doc xml:space="preserve">Asynchronously performs a TLS handshake on @conn. See
- g_tls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the handshake is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handshake_finish"
- invoker="handshake_finish"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS handshake operation. See
- g_tls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="emit_accept_certificate"
- c:identifier="g_tls_connection_emit_accept_certificate"
- version="2.28">
- <doc xml:space="preserve">Used by #GTlsConnection implementations to emit the
- #GTlsConnection::accept-certificate signal.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if one of the signal handlers has returned
- %TRUE to accept @peer_cert</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="peer_cert" transfer-ownership="none">
- <doc xml:space="preserve">the peer's #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <doc xml:space="preserve">the problems with @peer_cert</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_certificate"
- c:identifier="g_tls_connection_get_certificate"
- version="2.28">
- <doc xml:space="preserve">Gets @conn's certificate, as set by
- g_tls_connection_set_certificate().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_database"
- c:identifier="g_tls_connection_get_database"
- version="2.30">
- <doc xml:space="preserve">Gets the certificate database that @conn uses to verify
- peer certificates. See g_tls_connection_set_database().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the certificate database that @conn uses or %NULL</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_interaction"
- c:identifier="g_tls_connection_get_interaction"
- version="2.30">
- <doc xml:space="preserve">Get the object that will be used to interact with the user. It will be used
- for things like prompting the user for passwords. If %NULL is returned, then
- no user interaction will occur for this connection.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The interaction object.</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a connection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_peer_certificate"
- c:identifier="g_tls_connection_get_peer_certificate"
- version="2.28">
- <doc xml:space="preserve">Gets @conn's peer's certificate after the handshake has completed.
- (It is not set during the emission of
- #GTlsConnection::accept-certificate.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's peer's certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_peer_certificate_errors"
- c:identifier="g_tls_connection_get_peer_certificate_errors"
- version="2.28">
- <doc xml:space="preserve">Gets the errors associated with validating @conn's peer's
- certificate, after the handshake has completed. (It is not set
- during the emission of #GTlsConnection::accept-certificate.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's peer's certificate errors</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_rehandshake_mode"
- c:identifier="g_tls_connection_get_rehandshake_mode"
- version="2.28">
- <doc xml:space="preserve">Gets @conn rehandshaking mode. See
- g_tls_connection_set_rehandshake_mode() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@conn's rehandshaking mode</doc>
- <type name="TlsRehandshakeMode" c:type="GTlsRehandshakeMode"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_require_close_notify"
- c:identifier="g_tls_connection_get_require_close_notify"
- version="2.28">
- <doc xml:space="preserve">Tests whether or not @conn expects a proper TLS close notification
- when the connection is closed. See
- g_tls_connection_set_require_close_notify() for details.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @conn requires a proper TLS close
- notification.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_use_system_certdb"
- c:identifier="g_tls_connection_get_use_system_certdb"
- deprecated="1"
- deprecated-version="2.30">
- <doc xml:space="preserve">Gets whether @conn uses the system certificate database to verify
- peer certificates. See g_tls_connection_set_use_system_certdb().</doc>
- <doc-deprecated xml:space="preserve">Use g_tls_connection_get_database() instead</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @conn uses the system certificate database</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="handshake"
- c:identifier="g_tls_connection_handshake"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Attempts a TLS handshake on @conn.
- On the client side, it is never necessary to call this method;
- although the connection needs to perform a handshake after
- connecting (or after sending a "STARTTLS"-type command) and may
- need to rehandshake later if the server requests it,
- #GTlsConnection will handle this for you automatically when you try
- to send or receive data on the connection. However, you can call
- g_tls_connection_handshake() manually if you want to know for sure
- whether the initial handshake succeeded or failed (as opposed to
- just immediately trying to write to @conn's output stream, in which
- case if it fails, it may not be possible to tell if it failed
- before or after completing the handshake).
- Likewise, on the server side, although a handshake is necessary at
- the beginning of the communication, you do not need to call this
- function explicitly unless you want clearer error reporting.
- However, you may call g_tls_connection_handshake() later on to
- renegotiate parameters (encryption methods, etc) with the client.
- #GTlsConnection::accept_certificate may be emitted during the
- handshake.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="handshake_async"
- c:identifier="g_tls_connection_handshake_async"
- version="2.28">
- <doc xml:space="preserve">Asynchronously performs a TLS handshake on @conn. See
- g_tls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">callback to call when the handshake is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="handshake_finish"
- c:identifier="g_tls_connection_handshake_finish"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous TLS handshake operation. See
- g_tls_connection_handshake() for more information.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_certificate"
- c:identifier="g_tls_connection_set_certificate"
- version="2.28">
- <doc xml:space="preserve">This sets the certificate that @conn will present to its peer
- during the TLS handshake. For a #GTlsServerConnection, it is
- mandatory to set this, and that will normally be done at construct
- time.
- For a #GTlsClientConnection, this is optional. If a handshake fails
- with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
- requires a certificate, and if you try connecting again, you should
- call this method first. You can call
- g_tls_client_connection_get_accepted_cas() on the failed connection
- to get a list of Certificate Authorities that the server will
- accept certificates from.
- (It is also possible that a server will allow the connection with
- or without a certificate; in that case, if you don't provide a
- certificate, you can tell that the server requested one by the fact
- that g_tls_client_connection_get_accepted_cas() will return
- non-%NULL.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">the certificate to use for @conn</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_database"
- c:identifier="g_tls_connection_set_database"
- version="2.30">
- <doc xml:space="preserve">Sets the certificate database that is used to verify peer certificates.
- This is set to the default database by default. See
- g_tls_backend_get_default_database(). If set to %NULL, then
- peer certificate validation will always set the
- %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
- #GTlsConnection::accept-certificate will always be emitted on
- client-side connections, unless that bit is not set in
- #GTlsClientConnection:validation-flags).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="database" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_interaction"
- c:identifier="g_tls_connection_set_interaction"
- version="2.30">
- <doc xml:space="preserve">Set the object that will be used to interact with the user. It will be used
- for things like prompting the user for passwords.
- The @interaction argument will normally be a derived subclass of
- #GTlsInteraction. %NULL can also be provided if no user interaction
- should occur for this connection.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a connection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an interaction object, or %NULL</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_rehandshake_mode"
- c:identifier="g_tls_connection_set_rehandshake_mode"
- version="2.28">
- <doc xml:space="preserve">Sets how @conn behaves with respect to rehandshaking requests.
- %G_TLS_REHANDSHAKE_NEVER means that it will never agree to
- rehandshake after the initial handshake is complete. (For a client,
- this means it will refuse rehandshake requests from the server, and
- for a server, this means it will close the connection with an error
- if the client attempts to rehandshake.)
- %G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
- rehandshake only if the other end of the connection supports the
- TLS `renegotiation_info` extension. This is the default behavior,
- but means that rehandshaking will not work against older
- implementations that do not support that extension.
- %G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
- rehandshaking even without the `renegotiation_info` extension. On
- the server side in particular, this is not recommended, since it
- leaves the server open to certain attacks. However, this mode is
- necessary if you need to allow renegotiation with older client
- software.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the rehandshaking mode</doc>
- <type name="TlsRehandshakeMode" c:type="GTlsRehandshakeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_require_close_notify"
- c:identifier="g_tls_connection_set_require_close_notify"
- version="2.28">
- <doc xml:space="preserve">Sets whether or not @conn expects a proper TLS close notification
- before the connection is closed. If this is %TRUE (the default),
- then @conn will expect to receive a TLS close notification from its
- peer before the connection is closed, and will return a
- %G_TLS_ERROR_EOF error if the connection is closed without proper
- notification (since this may indicate a network error, or
- man-in-the-middle attack).
- In some protocols, the application will know whether or not the
- connection was closed cleanly based on application-level data
- (because the application-level data includes a length field, or is
- somehow self-delimiting); in this case, the close notify is
- redundant and sometimes omitted. (TLS 1.1 explicitly allows this;
- in TLS 1.0 it is technically an error, but often done anyway.) You
- can use g_tls_connection_set_require_close_notify() to tell @conn
- to allow an "unannounced" connection close, in which case the close
- will show up as a 0-length read, as in a non-TLS
- #GSocketConnection, and it is up to the application to check that
- the data has been fully received.
- Note that this only affects the behavior when the peer closes the
- connection; when the application calls g_io_stream_close() itself
- on @conn, this will send a close notification regardless of the
- setting of this property. If you explicitly want to do an unclean
- close, you can close @conn's #GTlsConnection:base-io-stream rather
- than closing @conn itself, but note that this may only be done when no other
- operations are pending on @conn or the base I/O stream.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="require_close_notify" transfer-ownership="none">
- <doc xml:space="preserve">whether or not to require close notification</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_use_system_certdb"
- c:identifier="g_tls_connection_set_use_system_certdb"
- deprecated="1"
- deprecated-version="2.30">
- <doc xml:space="preserve">Sets whether @conn uses the system certificate database to verify
- peer certificates. This is %TRUE by default. If set to %FALSE, then
- peer certificate validation will always set the
- %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
- #GTlsConnection::accept-certificate will always be emitted on
- client-side connections, unless that bit is not set in
- #GTlsClientConnection:validation-flags).</doc>
- <doc-deprecated xml:space="preserve">Use g_tls_connection_set_database() instead</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </instance-parameter>
- <parameter name="use_system_certdb" transfer-ownership="none">
- <doc xml:space="preserve">whether to use the system certificate database</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="base-io-stream"
- version="2.28"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GIOStream that the connection wraps. The connection holds a reference
- to this stream, and may run operations on the stream from other threads
- throughout its lifetime. Consequently, after the #GIOStream has been
- constructed, application code may only run its own operations on this
- stream when no #GIOStream operations are running.</doc>
- <type name="IOStream"/>
- </property>
- <property name="certificate"
- version="2.28"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The connection's certificate; see
- g_tls_connection_set_certificate().</doc>
- <type name="TlsCertificate"/>
- </property>
- <property name="database"
- version="2.30"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The certificate database to use when verifying this TLS connection.
- If no certificate database is set, then the default database will be
- used. See g_tls_backend_get_default_database().</doc>
- <type name="TlsDatabase"/>
- </property>
- <property name="interaction"
- version="2.30"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">A #GTlsInteraction object to be used when the connection or certificate
- database need to interact with the user. This will be used to prompt the
- user for passwords where necessary.</doc>
- <type name="TlsInteraction"/>
- </property>
- <property name="peer-certificate"
- version="2.28"
- transfer-ownership="none">
- <doc xml:space="preserve">The connection's peer's certificate, after the TLS handshake has
- completed and the certificate has been accepted. Note in
- particular that this is not yet set during the emission of
- #GTlsConnection::accept-certificate.
- (You can watch for a #GObject::notify signal on this property to
- detect when a handshake has occurred.)</doc>
- <type name="TlsCertificate"/>
- </property>
- <property name="peer-certificate-errors"
- version="2.28"
- transfer-ownership="none">
- <doc xml:space="preserve">The errors noticed-and-ignored while verifying
- #GTlsConnection:peer-certificate. Normally this should be 0, but
- it may not be if #GTlsClientConnection:validation-flags is not
- %G_TLS_CERTIFICATE_VALIDATE_ALL, or if
- #GTlsConnection::accept-certificate overrode the default
- behavior.</doc>
- <type name="TlsCertificateFlags"/>
- </property>
- <property name="rehandshake-mode"
- version="2.28"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The rehandshaking mode. See
- g_tls_connection_set_rehandshake_mode().</doc>
- <type name="TlsRehandshakeMode"/>
- </property>
- <property name="require-close-notify"
- version="2.28"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether or not proper TLS close notification is required.
- See g_tls_connection_set_require_close_notify().</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="use-system-certdb"
- deprecated="1"
- deprecated-version="2.30"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether or not the system certificate database will be used to
- verify peer certificates. See
- g_tls_connection_set_use_system_certdb().</doc>
- <doc-deprecated xml:space="preserve">Use GTlsConnection:database instead</doc-deprecated>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="parent_instance">
- <type name="IOStream" c:type="GIOStream"/>
- </field>
- <field name="priv">
- <type name="TlsConnectionPrivate" c:type="GTlsConnectionPrivate*"/>
- </field>
- <glib:signal name="accept-certificate" when="last" version="2.28">
- <doc xml:space="preserve">Emitted during the TLS handshake after the peer certificate has
- been received. You can examine @peer_cert's certification path by
- calling g_tls_certificate_get_issuer() on it.
- For a client-side connection, @peer_cert is the server's
- certificate, and the signal will only be emitted if the
- certificate was not acceptable according to @conn's
- #GTlsClientConnection:validation_flags. If you would like the
- certificate to be accepted despite @errors, return %TRUE from the
- signal handler. Otherwise, if no handler accepts the certificate,
- the handshake will fail with %G_TLS_ERROR_BAD_CERTIFICATE.
- For a server-side connection, @peer_cert is the certificate
- presented by the client, if this was requested via the server's
- #GTlsServerConnection:authentication_mode. On the server side,
- the signal is always emitted when the client presents a
- certificate, and the certificate will only be accepted if a
- handler returns %TRUE.
- Note that if this signal is emitted as part of asynchronous I/O
- in the main thread, then you should not attempt to interact with
- the user before returning from the signal handler. If you want to
- let the user decide whether or not to accept the certificate, you
- would have to return %FALSE from the signal handler on the first
- attempt, and then after the connection attempt returns a
- %G_TLS_ERROR_HANDSHAKE, you can interact with the user, and if
- the user decides to accept the certificate, remember that fact,
- create a new connection, and return %TRUE from the signal handler
- the next time.
- If you are doing I/O in another thread, you do not
- need to worry about this, and can simply block in the signal
- handler until the UI thread returns an answer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to accept @peer_cert (which will also
- immediately end the signal emission). %FALSE to allow the signal
- emission to continue, which will cause the handshake to fail if
- no one else overrides it.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="peer_cert" transfer-ownership="none">
- <doc xml:space="preserve">the peer's #GTlsCertificate</doc>
- <type name="TlsCertificate"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <doc xml:space="preserve">the problems with @peer_cert.</doc>
- <type name="TlsCertificateFlags"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="TlsConnectionClass"
- c:type="GTlsConnectionClass"
- glib:is-gtype-struct-for="TlsConnection">
- <field name="parent_class">
- <type name="IOStreamClass" c:type="GIOStreamClass"/>
- </field>
- <field name="accept_certificate">
- <callback name="accept_certificate">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="peer_cert" transfer-ownership="none">
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="errors" transfer-ownership="none">
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handshake">
- <callback name="handshake" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">success or failure</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handshake_async">
- <callback name="handshake_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the request</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">callback to call when the handshake is complete</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handshake_finish">
- <callback name="handshake_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on failure, in which
- case @error will be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="conn" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="TlsConnectionPrivate"
- c:type="GTlsConnectionPrivate"
- disguised="1">
- </record>
- <class name="TlsDatabase"
- c:symbol-prefix="tls_database"
- c:type="GTlsDatabase"
- version="2.30"
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GTlsDatabase"
- glib:get-type="g_tls_database_get_type"
- glib:type-struct="TlsDatabaseClass">
- <doc xml:space="preserve">#GTlsDatabase is used to lookup certificates and other information
- from a certificate or key store. It is an abstract base class which
- TLS library specific subtypes override.
- Most common client applications will not directly interact with
- #GTlsDatabase. It is used internally by #GTlsConnection.</doc>
- <virtual-method name="create_certificate_handle"
- invoker="create_certificate_handle"
- version="2.30">
- <doc xml:space="preserve">Create a handle string for the certificate. The database will only be able
- to create a handle for certificates that originate from the database. In
- cases where the database cannot create a handle for a certificate, %NULL
- will be returned.
- This handle should be stable across various instances of the application,
- and between applications. If a certificate is modified in the database,
- then it is not guaranteed that this handle will continue to point to it.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated string containing the
- handle.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">certificate for which to create a handle.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificate_for_handle"
- invoker="lookup_certificate_for_handle"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Lookup a certificate by its handle.
- The handle should have been created by calling
- g_tls_database_create_certificate_handle() on a #GTlsDatabase object of
- the same TLS backend. The handle is designed to remain valid across
- instantiations of the database.
- If the handle is no longer valid, or does not point to a certificate in
- this database, then %NULL will be returned.
- This function can block, use g_tls_database_lookup_certificate_for_handle_async() to perform
- the lookup operation asynchronously.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated
- #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a certificate handle</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificate_for_handle_async"
- invoker="lookup_certificate_for_handle_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously lookup a certificate by its handle in the database. See
- g_tls_database_lookup_certificate_for_handle() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a certificate handle</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificate_for_handle_finish"
- invoker="lookup_certificate_for_handle_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous lookup of a certificate by its handle. See
- g_tls_database_lookup_certificate_handle() for more information.
- If the handle is no longer valid, or does not point to a certificate in
- this database, then %NULL will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GTlsCertificate object.
- Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificate_issuer"
- invoker="lookup_certificate_issuer"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Lookup the issuer of @certificate in the database.
- The %issuer property
- of @certificate is not modified, and the two certificates are not hooked
- into a chain.
- This function can block, use g_tls_database_lookup_certificate_issuer_async() to perform
- the lookup operation asynchronously.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated issuer #GTlsCertificate,
- or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags which affect the lookup operation</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificate_issuer_async"
- invoker="lookup_certificate_issuer_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously lookup the issuer of @certificate in the database. See
- g_tls_database_lookup_certificate_issuer() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags which affect the lookup operation</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificate_issuer_finish"
- invoker="lookup_certificate_issuer_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous lookup issuer operation. See
- g_tls_database_lookup_certificate_issuer() for more information.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated issuer #GTlsCertificate,
- or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificates_issued_by"
- invoker="lookup_certificates_issued_by"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Lookup certificates issued by this issuer in the database.
- This function can block, use g_tls_database_lookup_certificates_issued_by_async() to perform
- the lookup operation asynchronously.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated list of #GTlsCertificate
- objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="issuer_raw_dn" transfer-ownership="none">
- <doc xml:space="preserve">a #GByteArray which holds the DER encoded issuer DN.</doc>
- <array name="GLib.ByteArray" c:type="GByteArray*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup operation.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificates_issued_by_async"
- invoker="lookup_certificates_issued_by_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously lookup certificates issued by this issuer in the database. See
- g_tls_database_lookup_certificates_issued_by() for more information.
- The database may choose to hold a reference to the issuer byte array for the duration
- of of this asynchronous operation. The byte array should not be modified during
- this time.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="issuer_raw_dn" transfer-ownership="none">
- <doc xml:space="preserve">a #GByteArray which holds the DER encoded issuer DN.</doc>
- <array name="GLib.ByteArray" c:type="GByteArray*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup operation.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="lookup_certificates_issued_by_finish"
- invoker="lookup_certificates_issued_by_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous lookup of certificates. See
- g_tls_database_lookup_certificates_issued_by() for more information.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated list of #GTlsCertificate
- objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="verify_chain"
- invoker="verify_chain"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Verify's a certificate chain after looking up and adding any missing
- certificates to the chain.
- @chain is a chain of #GTlsCertificate objects each pointing to the next
- certificate in the chain by its %issuer property. The chain may initially
- consist of one or more certificates. After the verification process is
- complete, @chain may be modified by adding missing certificates, or removing
- extra certificates. If a certificate anchor was found, then it is added to
- the @chain.
- @purpose describes the purpose (or usage) for which the certificate
- is being used. Typically @purpose will be set to #G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER
- which means that the certificate is being used to authenticate a server
- (and we are acting as the client).
- The @identity is used to check for pinned certificates (trust exceptions)
- in the database. These will override the normal verification process on a
- host by host basis.
- Currently there are no @flags, and %G_TLS_DATABASE_VERIFY_NONE should be
- used.
- This function can block, use g_tls_database_verify_chain_async() to perform
- the verification operation asynchronously.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags which represents the
- result of verification.</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="chain" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate chain</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="purpose" transfer-ownership="none">
- <doc xml:space="preserve">the purpose that this certificate chain will be used for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">additional verify flags</doc>
- <type name="TlsDatabaseVerifyFlags"
- c:type="GTlsDatabaseVerifyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="verify_chain_async"
- invoker="verify_chain_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously verify's a certificate chain after looking up and adding
- any missing certificates to the chain. See g_tls_database_verify_chain()
- for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="chain" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate chain</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="purpose" transfer-ownership="none">
- <doc xml:space="preserve">the purpose that this certificate chain will be used for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">additional verify flags</doc>
- <type name="TlsDatabaseVerifyFlags"
- c:type="GTlsDatabaseVerifyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="7">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="verify_chain_finish"
- invoker="verify_chain_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous verify chain operation. See
- g_tls_database_verify_chain() for more information. *</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags which represents the
- result of verification.</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="create_certificate_handle"
- c:identifier="g_tls_database_create_certificate_handle"
- version="2.30">
- <doc xml:space="preserve">Create a handle string for the certificate. The database will only be able
- to create a handle for certificates that originate from the database. In
- cases where the database cannot create a handle for a certificate, %NULL
- will be returned.
- This handle should be stable across various instances of the application,
- and between applications. If a certificate is modified in the database,
- then it is not guaranteed that this handle will continue to point to it.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated string containing the
- handle.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">certificate for which to create a handle.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificate_for_handle"
- c:identifier="g_tls_database_lookup_certificate_for_handle"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Lookup a certificate by its handle.
- The handle should have been created by calling
- g_tls_database_create_certificate_handle() on a #GTlsDatabase object of
- the same TLS backend. The handle is designed to remain valid across
- instantiations of the database.
- If the handle is no longer valid, or does not point to a certificate in
- this database, then %NULL will be returned.
- This function can block, use g_tls_database_lookup_certificate_for_handle_async() to perform
- the lookup operation asynchronously.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated
- #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a certificate handle</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificate_for_handle_async"
- c:identifier="g_tls_database_lookup_certificate_for_handle_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously lookup a certificate by its handle in the database. See
- g_tls_database_lookup_certificate_for_handle() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a certificate handle</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificate_for_handle_finish"
- c:identifier="g_tls_database_lookup_certificate_for_handle_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous lookup of a certificate by its handle. See
- g_tls_database_lookup_certificate_handle() for more information.
- If the handle is no longer valid, or does not point to a certificate in
- this database, then %NULL will be returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GTlsCertificate object.
- Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificate_issuer"
- c:identifier="g_tls_database_lookup_certificate_issuer"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Lookup the issuer of @certificate in the database.
- The %issuer property
- of @certificate is not modified, and the two certificates are not hooked
- into a chain.
- This function can block, use g_tls_database_lookup_certificate_issuer_async() to perform
- the lookup operation asynchronously.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated issuer #GTlsCertificate,
- or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags which affect the lookup operation</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificate_issuer_async"
- c:identifier="g_tls_database_lookup_certificate_issuer_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously lookup the issuer of @certificate in the database. See
- g_tls_database_lookup_certificate_issuer() for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags which affect the lookup operation</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificate_issuer_finish"
- c:identifier="g_tls_database_lookup_certificate_issuer_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous lookup issuer operation. See
- g_tls_database_lookup_certificate_issuer() for more information.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated issuer #GTlsCertificate,
- or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificates_issued_by"
- c:identifier="g_tls_database_lookup_certificates_issued_by"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Lookup certificates issued by this issuer in the database.
- This function can block, use g_tls_database_lookup_certificates_issued_by_async() to perform
- the lookup operation asynchronously.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated list of #GTlsCertificate
- objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="issuer_raw_dn" transfer-ownership="none">
- <doc xml:space="preserve">a #GByteArray which holds the DER encoded issuer DN.</doc>
- <array name="GLib.ByteArray" c:type="GByteArray*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup operation.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificates_issued_by_async"
- c:identifier="g_tls_database_lookup_certificates_issued_by_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously lookup certificates issued by this issuer in the database. See
- g_tls_database_lookup_certificates_issued_by() for more information.
- The database may choose to hold a reference to the issuer byte array for the duration
- of of this asynchronous operation. The byte array should not be modified during
- this time.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="issuer_raw_dn" transfer-ownership="none">
- <doc xml:space="preserve">a #GByteArray which holds the DER encoded issuer DN.</doc>
- <array name="GLib.ByteArray" c:type="GByteArray*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup operation.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_certificates_issued_by_finish"
- c:identifier="g_tls_database_lookup_certificates_issued_by_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous lookup of certificates. See
- g_tls_database_lookup_certificates_issued_by() for more information.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated list of #GTlsCertificate
- objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="verify_chain"
- c:identifier="g_tls_database_verify_chain"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Verify's a certificate chain after looking up and adding any missing
- certificates to the chain.
- @chain is a chain of #GTlsCertificate objects each pointing to the next
- certificate in the chain by its %issuer property. The chain may initially
- consist of one or more certificates. After the verification process is
- complete, @chain may be modified by adding missing certificates, or removing
- extra certificates. If a certificate anchor was found, then it is added to
- the @chain.
- @purpose describes the purpose (or usage) for which the certificate
- is being used. Typically @purpose will be set to #G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER
- which means that the certificate is being used to authenticate a server
- (and we are acting as the client).
- The @identity is used to check for pinned certificates (trust exceptions)
- in the database. These will override the normal verification process on a
- host by host basis.
- Currently there are no @flags, and %G_TLS_DATABASE_VERIFY_NONE should be
- used.
- This function can block, use g_tls_database_verify_chain_async() to perform
- the verification operation asynchronously.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags which represents the
- result of verification.</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="chain" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate chain</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="purpose" transfer-ownership="none">
- <doc xml:space="preserve">the purpose that this certificate chain will be used for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">additional verify flags</doc>
- <type name="TlsDatabaseVerifyFlags"
- c:type="GTlsDatabaseVerifyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="verify_chain_async"
- c:identifier="g_tls_database_verify_chain_async"
- version="2.30">
- <doc xml:space="preserve">Asynchronously verify's a certificate chain after looking up and adding
- any missing certificates to the chain. See g_tls_database_verify_chain()
- for more information.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="chain" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate chain</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="purpose" transfer-ownership="none">
- <doc xml:space="preserve">the purpose that this certificate chain will be used for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">additional verify flags</doc>
- <type name="TlsDatabaseVerifyFlags"
- c:type="GTlsDatabaseVerifyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="7">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="verify_chain_finish"
- c:identifier="g_tls_database_verify_chain_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Finish an asynchronous verify chain operation. See
- g_tls_database_verify_chain() for more information. *</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags which represents the
- result of verification.</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="TlsDatabasePrivate" c:type="GTlsDatabasePrivate*"/>
- </field>
- </class>
- <record name="TlsDatabaseClass"
- c:type="GTlsDatabaseClass"
- glib:is-gtype-struct-for="TlsDatabase"
- version="2.30">
- <doc xml:space="preserve">The class for #GTlsDatabase. Derived classes should implement the various
- virtual methods. _async and _finish methods have a default
- implementation that runs the corresponding sync method in a thread.</doc>
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="verify_chain">
- <callback name="verify_chain" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags which represents the
- result of verification.</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="chain" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate chain</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="purpose" transfer-ownership="none">
- <doc xml:space="preserve">the purpose that this certificate chain will be used for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">additional verify flags</doc>
- <type name="TlsDatabaseVerifyFlags"
- c:type="GTlsDatabaseVerifyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="verify_chain_async">
- <callback name="verify_chain_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="chain" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate chain</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="purpose" transfer-ownership="none">
- <doc xml:space="preserve">the purpose that this certificate chain will be used for.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected peer identity</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">additional verify flags</doc>
- <type name="TlsDatabaseVerifyFlags"
- c:type="GTlsDatabaseVerifyFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="8">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="8">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="verify_chain_finish">
- <callback name="verify_chain_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the appropriate #GTlsCertificateFlags which represents the
- result of verification.</doc>
- <type name="TlsCertificateFlags" c:type="GTlsCertificateFlags"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="create_certificate_handle">
- <callback name="create_certificate_handle">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated string containing the
- handle.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">certificate for which to create a handle.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificate_for_handle">
- <callback name="lookup_certificate_for_handle" throws="1">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a newly allocated
- #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a certificate handle</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificate_for_handle_async">
- <callback name="lookup_certificate_for_handle_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a certificate handle</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificate_for_handle_finish">
- <callback name="lookup_certificate_for_handle_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GTlsCertificate object.
- Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificate_issuer">
- <callback name="lookup_certificate_issuer" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated issuer #GTlsCertificate,
- or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags which affect the lookup operation</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificate_issuer_async">
- <callback name="lookup_certificate_issuer_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="certificate" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsCertificate</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags which affect the lookup operation</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificate_issuer_finish">
- <callback name="lookup_certificate_issuer_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated issuer #GTlsCertificate,
- or %NULL. Use g_object_unref() to release the certificate.</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificates_issued_by">
- <callback name="lookup_certificates_issued_by" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated list of #GTlsCertificate
- objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="issuer_raw_dn" transfer-ownership="none">
- <doc xml:space="preserve">a #GByteArray which holds the DER encoded issuer DN.</doc>
- <array name="GLib.ByteArray" c:type="GByteArray*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup operation.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificates_issued_by_async">
- <callback name="lookup_certificates_issued_by_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="issuer_raw_dn" transfer-ownership="none">
- <doc xml:space="preserve">a #GByteArray which holds the DER encoded issuer DN.</doc>
- <array name="GLib.ByteArray" c:type="GByteArray*">
- <type name="guint8" c:type="guint8"/>
- </array>
- </parameter>
- <parameter name="interaction"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">used to interact with the user if necessary</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags which affect the lookup operation.</doc>
- <type name="TlsDatabaseLookupFlags"
- c:type="GTlsDatabaseLookupFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">callback to call when the operation completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="6">
- <doc xml:space="preserve">the data to pass to the callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="lookup_certificates_issued_by_finish">
- <callback name="lookup_certificates_issued_by_finish" throws="1">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated list of #GTlsCertificate
- objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="TlsCertificate"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsDatabase</doc>
- <type name="TlsDatabase" c:type="GTlsDatabase*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="16">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <enumeration name="TlsDatabaseLookupFlags"
- version="2.30"
- glib:type-name="GTlsDatabaseLookupFlags"
- glib:get-type="g_tls_database_lookup_flags_get_type"
- c:type="GTlsDatabaseLookupFlags">
- <doc xml:space="preserve">Flags for g_tls_database_lookup_certificate_handle(),
- g_tls_database_lookup_certificate_issuer(),
- and g_tls_database_lookup_certificates_issued_by().</doc>
- <member name="none"
- value="0"
- c:identifier="G_TLS_DATABASE_LOOKUP_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No lookup flags</doc>
- </member>
- <member name="keypair"
- value="1"
- c:identifier="G_TLS_DATABASE_LOOKUP_KEYPAIR"
- glib:nick="keypair">
- <doc xml:space="preserve">Restrict lookup to certificates that have
- a private key.</doc>
- </member>
- </enumeration>
- <record name="TlsDatabasePrivate"
- c:type="GTlsDatabasePrivate"
- disguised="1">
- </record>
- <bitfield name="TlsDatabaseVerifyFlags"
- version="2.30"
- glib:type-name="GTlsDatabaseVerifyFlags"
- glib:get-type="g_tls_database_verify_flags_get_type"
- c:type="GTlsDatabaseVerifyFlags">
- <doc xml:space="preserve">Flags for g_tls_database_verify_chain().</doc>
- <member name="none"
- value="0"
- c:identifier="G_TLS_DATABASE_VERIFY_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No verification flags</doc>
- </member>
- </bitfield>
- <enumeration name="TlsError"
- version="2.28"
- glib:type-name="GTlsError"
- glib:get-type="g_tls_error_get_type"
- c:type="GTlsError"
- glib:error-domain="g-tls-error-quark">
- <doc xml:space="preserve">An error code used with %G_TLS_ERROR in a #GError returned from a
- TLS-related routine.</doc>
- <member name="unavailable"
- value="0"
- c:identifier="G_TLS_ERROR_UNAVAILABLE"
- glib:nick="unavailable">
- <doc xml:space="preserve">No TLS provider is available</doc>
- </member>
- <member name="misc"
- value="1"
- c:identifier="G_TLS_ERROR_MISC"
- glib:nick="misc">
- <doc xml:space="preserve">Miscellaneous TLS error</doc>
- </member>
- <member name="bad_certificate"
- value="2"
- c:identifier="G_TLS_ERROR_BAD_CERTIFICATE"
- glib:nick="bad-certificate">
- <doc xml:space="preserve">A certificate could not be parsed</doc>
- </member>
- <member name="not_tls"
- value="3"
- c:identifier="G_TLS_ERROR_NOT_TLS"
- glib:nick="not-tls">
- <doc xml:space="preserve">The TLS handshake failed because the
- peer does not seem to be a TLS server.</doc>
- </member>
- <member name="handshake"
- value="4"
- c:identifier="G_TLS_ERROR_HANDSHAKE"
- glib:nick="handshake">
- <doc xml:space="preserve">The TLS handshake failed because the
- peer's certificate was not acceptable.</doc>
- </member>
- <member name="certificate_required"
- value="5"
- c:identifier="G_TLS_ERROR_CERTIFICATE_REQUIRED"
- glib:nick="certificate-required">
- <doc xml:space="preserve">The TLS handshake failed because
- the server requested a client-side certificate, but none was
- provided. See g_tls_connection_set_certificate().</doc>
- </member>
- <member name="eof"
- value="6"
- c:identifier="G_TLS_ERROR_EOF"
- glib:nick="eof">
- <doc xml:space="preserve">The TLS connection was closed without proper
- notice, which may indicate an attack. See
- g_tls_connection_set_require_close_notify().</doc>
- </member>
- <function name="quark" c:identifier="g_tls_error_quark" version="2.28">
- <doc xml:space="preserve">Gets the TLS error quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </enumeration>
- <interface name="TlsFileDatabase"
- c:symbol-prefix="tls_file_database"
- c:type="GTlsFileDatabase"
- version="2.30"
- glib:type-name="GTlsFileDatabase"
- glib:get-type="g_tls_file_database_get_type"
- glib:type-struct="TlsFileDatabaseInterface">
- <doc xml:space="preserve">#GTlsFileDatabase is implemented by #GTlsDatabase objects which load
- their certificate information from a file. It is an interface which
- TLS library specific subtypes implement.</doc>
- <prerequisite name="TlsDatabase"/>
- <function name="new"
- c:identifier="g_tls_file_database_new"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Creates a new #GTlsFileDatabase which uses anchor certificate authorities
- in @anchors to verify certificate chains.
- The certificates in @anchors must be PEM encoded.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GTlsFileDatabase, or %NULL on error</doc>
- <type name="TlsFileDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <parameter name="anchors" transfer-ownership="none">
- <doc xml:space="preserve">filename of anchor certificate authorities.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <property name="anchors"
- version="2.30"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The path to a file containing PEM encoded certificate authority
- root anchors. The certificates in this file will be treated as
- root authorities for the purpose of verifying other certificates
- via the g_tls_database_verify_chain() operation.</doc>
- <type name="utf8" c:type="gchar*"/>
- </property>
- </interface>
- <record name="TlsFileDatabaseInterface"
- c:type="GTlsFileDatabaseInterface"
- glib:is-gtype-struct-for="TlsFileDatabase">
- <doc xml:space="preserve">Provides an interface for #GTlsFileDatabase implementations.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="8">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <class name="TlsInteraction"
- c:symbol-prefix="tls_interaction"
- c:type="GTlsInteraction"
- version="2.30"
- parent="GObject.Object"
- glib:type-name="GTlsInteraction"
- glib:get-type="g_tls_interaction_get_type"
- glib:type-struct="TlsInteractionClass">
- <doc xml:space="preserve">#GTlsInteraction provides a mechanism for the TLS connection and database
- code to interact with the user. It can be used to ask the user for passwords.
- To use a #GTlsInteraction with a TLS connection use
- g_tls_connection_set_interaction().
- Callers should instantiate a derived class that implements the various
- interaction methods to show the required dialogs.
- Callers should use the 'invoke' functions like
- g_tls_interaction_invoke_ask_password() to run interaction methods. These
- functions make sure that the interaction is invoked in the main loop
- and not in the current thread, if the current thread is not running the
- main loop.
- Derived classes can choose to implement whichever interactions methods they'd
- like to support by overriding those virtual methods in their class
- initialization function. Any interactions not implemented will return
- %G_TLS_INTERACTION_UNHANDLED. If a derived class implements an async method,
- it must also implement the corresponding finish method.</doc>
- <virtual-method name="ask_password"
- invoker="ask_password"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Run synchronous interaction to ask the user for a password. In general,
- g_tls_interaction_invoke_ask_password() should be used instead of this
- function.
- Derived subclasses usually implement a password prompt, although they may
- also choose to provide a password from elsewhere. The @password value will
- be filled in and then @callback will be called. Alternatively the user may
- abort this password request, which will usually abort the TLS connection.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="ask_password_async"
- invoker="ask_password_async"
- version="2.30">
- <doc xml:space="preserve">Run asynchronous interaction to ask the user for a password. In general,
- g_tls_interaction_invoke_ask_password() should be used instead of this
- function.
- Derived subclasses usually implement a password prompt, although they may
- also choose to provide a password from elsewhere. The @password value will
- be filled in and then @callback will be called. Alternatively the user may
- abort this password request, which will usually abort the TLS connection.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.
- Certain implementations may not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">will be called when the interaction completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">data to pass to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="ask_password_finish"
- invoker="ask_password_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Complete an ask password user interaction request. This should be once
- the g_tls_interaction_ask_password_async() completion callback is called.
- If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsPassword passed
- to g_tls_interaction_ask_password() will have its password filled in.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="request_certificate"
- invoker="request_certificate"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Run synchronous interaction to ask the user to choose a certificate to use
- with the connection. In general, g_tls_interaction_invoke_request_certificate()
- should be used instead of this function.
- Derived subclasses usually implement a certificate selector, although they may
- also choose to provide a certificate from elsewhere. Alternatively the user may
- abort this certificate request, which will usually abort the TLS connection.
- If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
- passed to g_tls_interaction_request_certificate() will have had its
- #GTlsConnection:certificate filled in.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the request certificate interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="request_certificate_async"
- invoker="request_certificate_async"
- version="2.40">
- <doc xml:space="preserve">Run asynchronous interaction to ask the user for a certificate to use with
- the connection. In general, g_tls_interaction_invoke_request_certificate() should
- be used instead of this function.
- Derived subclasses usually implement a certificate selector, although they may
- also choose to provide a certificate from elsewhere. @callback will be called
- when the operation completes. Alternatively the user may abort this certificate
- request, which will usually abort the TLS connection.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">will be called when the interaction completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">data to pass to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="request_certificate_finish"
- invoker="request_certificate_finish"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Complete an request certificate user interaction request. This should be once
- the g_tls_interaction_request_certificate_async() completion callback is called.
- If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
- passed to g_tls_interaction_request_certificate_async() will have had its
- #GTlsConnection:certificate filled in.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the request certificate interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="ask_password"
- c:identifier="g_tls_interaction_ask_password"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Run synchronous interaction to ask the user for a password. In general,
- g_tls_interaction_invoke_ask_password() should be used instead of this
- function.
- Derived subclasses usually implement a password prompt, although they may
- also choose to provide a password from elsewhere. The @password value will
- be filled in and then @callback will be called. Alternatively the user may
- abort this password request, which will usually abort the TLS connection.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="ask_password_async"
- c:identifier="g_tls_interaction_ask_password_async"
- version="2.30">
- <doc xml:space="preserve">Run asynchronous interaction to ask the user for a password. In general,
- g_tls_interaction_invoke_ask_password() should be used instead of this
- function.
- Derived subclasses usually implement a password prompt, although they may
- also choose to provide a password from elsewhere. The @password value will
- be filled in and then @callback will be called. Alternatively the user may
- abort this password request, which will usually abort the TLS connection.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.
- Certain implementations may not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">will be called when the interaction completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="ask_password_finish"
- c:identifier="g_tls_interaction_ask_password_finish"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Complete an ask password user interaction request. This should be once
- the g_tls_interaction_ask_password_async() completion callback is called.
- If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsPassword passed
- to g_tls_interaction_ask_password() will have its password filled in.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="invoke_ask_password"
- c:identifier="g_tls_interaction_invoke_ask_password"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Invoke the interaction to ask the user for a password. It invokes this
- interaction in the main loop, specifically the #GMainContext returned by
- g_main_context_get_thread_default() when the interaction is created. This
- is called by called by #GTlsConnection or #GTlsDatabase to ask the user
- for a password.
- Derived subclasses usually implement a password prompt, although they may
- also choose to provide a password from elsewhere. The @password value will
- be filled in and then @callback will be called. Alternatively the user may
- abort this password request, which will usually abort the TLS connection.
- The implementation can either be a synchronous (eg: modal dialog) or an
- asynchronous one (eg: modeless dialog). This function will take care of
- calling which ever one correctly.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="invoke_request_certificate"
- c:identifier="g_tls_interaction_invoke_request_certificate"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Invoke the interaction to ask the user to choose a certificate to
- use with the connection. It invokes this interaction in the main
- loop, specifically the #GMainContext returned by
- g_main_context_get_thread_default() when the interaction is
- created. This is called by called by #GTlsConnection when the peer
- requests a certificate during the handshake.
- Derived subclasses usually implement a certificate selector,
- although they may also choose to provide a certificate from
- elsewhere. Alternatively the user may abort this certificate
- request, which may or may not abort the TLS connection.
- The implementation can either be a synchronous (eg: modal dialog) or an
- asynchronous one (eg: modeless dialog). This function will take care of
- calling which ever one correctly.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the certificate request interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="request_certificate"
- c:identifier="g_tls_interaction_request_certificate"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Run synchronous interaction to ask the user to choose a certificate to use
- with the connection. In general, g_tls_interaction_invoke_request_certificate()
- should be used instead of this function.
- Derived subclasses usually implement a certificate selector, although they may
- also choose to provide a certificate from elsewhere. Alternatively the user may
- abort this certificate request, which will usually abort the TLS connection.
- If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
- passed to g_tls_interaction_request_certificate() will have had its
- #GTlsConnection:certificate filled in.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- not support immediate cancellation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the request certificate interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="request_certificate_async"
- c:identifier="g_tls_interaction_request_certificate_async"
- version="2.40">
- <doc xml:space="preserve">Run asynchronous interaction to ask the user for a certificate to use with
- the connection. In general, g_tls_interaction_invoke_request_certificate() should
- be used instead of this function.
- Derived subclasses usually implement a certificate selector, although they may
- also choose to provide a certificate from elsewhere. @callback will be called
- when the operation completes. Alternatively the user may abort this certificate
- request, which will usually abort the TLS connection.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">will be called when the interaction completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="request_certificate_finish"
- c:identifier="g_tls_interaction_request_certificate_finish"
- version="2.40"
- throws="1">
- <doc xml:space="preserve">Complete an request certificate user interaction request. This should be once
- the g_tls_interaction_request_certificate_async() completion callback is called.
- If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
- passed to g_tls_interaction_request_certificate_async() will have had its
- #GTlsConnection:certificate filled in.
- If the interaction is cancelled by the cancellation object, or by the
- user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- contains a %G_IO_ERROR_CANCELLED error code.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the request certificate interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <instance-parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance" readable="0" private="1">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="TlsInteractionPrivate" c:type="GTlsInteractionPrivate*"/>
- </field>
- </class>
- <record name="TlsInteractionClass"
- c:type="GTlsInteractionClass"
- glib:is-gtype-struct-for="TlsInteraction"
- version="2.30">
- <doc xml:space="preserve">The class for #GTlsInteraction. Derived classes implement the various
- virtual interaction methods to handle TLS interactions.
- Derived classes can choose to implement whichever interactions methods they'd
- like to support by overriding those virtual methods in their class
- initialization function. If a derived class implements an async method,
- it must also implement the corresponding finish method.
- The synchronous interaction methods should implement to display modal dialogs,
- and the asynchronous methods to display modeless dialogs.
- If the user cancels an interaction, then the result should be
- %G_TLS_INTERACTION_FAILED and the error should be set with a domain of
- %G_IO_ERROR and code of %G_IO_ERROR_CANCELLED.</doc>
- <field name="parent_class" readable="0" private="1">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="ask_password">
- <callback name="ask_password" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="ask_password_async">
- <callback name="ask_password_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">will be called when the interaction completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">data to pass to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="ask_password_finish">
- <callback name="ask_password_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the ask password interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="request_certificate">
- <callback name="request_certificate" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the request certificate interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="request_certificate_async">
- <callback name="request_certificate_async">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsConnection object</doc>
- <type name="TlsConnection" c:type="GTlsConnection*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags providing more information about the request</doc>
- <type name="TlsCertificateRequestFlags"
- c:type="GTlsCertificateRequestFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GCancellable cancellation object</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">will be called when the interaction completes</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">data to pass to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="request_certificate_finish">
- <callback name="request_certificate_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The status of the request certificate interaction.</doc>
- <type name="TlsInteractionResult" c:type="GTlsInteractionResult"/>
- </return-value>
- <parameters>
- <parameter name="interaction" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsInteraction object</doc>
- <type name="TlsInteraction" c:type="GTlsInteraction*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">the result passed to the callback</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="21">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="TlsInteractionPrivate"
- c:type="GTlsInteractionPrivate"
- disguised="1">
- </record>
- <enumeration name="TlsInteractionResult"
- version="2.30"
- glib:type-name="GTlsInteractionResult"
- glib:get-type="g_tls_interaction_result_get_type"
- c:type="GTlsInteractionResult">
- <doc xml:space="preserve">#GTlsInteractionResult is returned by various functions in #GTlsInteraction
- when finishing an interaction request.</doc>
- <member name="unhandled"
- value="0"
- c:identifier="G_TLS_INTERACTION_UNHANDLED"
- glib:nick="unhandled">
- <doc xml:space="preserve">The interaction was unhandled (i.e. not
- implemented).</doc>
- </member>
- <member name="handled"
- value="1"
- c:identifier="G_TLS_INTERACTION_HANDLED"
- glib:nick="handled">
- <doc xml:space="preserve">The interaction completed, and resulting data
- is available.</doc>
- </member>
- <member name="failed"
- value="2"
- c:identifier="G_TLS_INTERACTION_FAILED"
- glib:nick="failed">
- <doc xml:space="preserve">The interaction has failed, or was cancelled.
- and the operation should be aborted.</doc>
- </member>
- </enumeration>
- <class name="TlsPassword"
- c:symbol-prefix="tls_password"
- c:type="GTlsPassword"
- version="2.30"
- parent="GObject.Object"
- glib:type-name="GTlsPassword"
- glib:get-type="g_tls_password_get_type"
- glib:type-struct="TlsPasswordClass">
- <doc xml:space="preserve">Holds a password used in TLS.</doc>
- <constructor name="new" c:identifier="g_tls_password_new">
- <doc xml:space="preserve">Create a new #GTlsPassword object.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The newly allocated password object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">the password flags</doc>
- <type name="TlsPasswordFlags" c:type="GTlsPasswordFlags"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">description of what the password is for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="get_default_warning">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_value" invoker="get_value" version="2.30">
- <doc xml:space="preserve">Get the password value. If @length is not %NULL then it will be
- filled in with the length of the password value. (Note that the
- password value is not nul-terminated, so you can only pass %NULL
- for @length in contexts where you know the password will have a
- certain fixed length.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The password value (owned by the password object).</doc>
- <type name="guint8" c:type="const guchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="length"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">location to place the length of the password.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_value" invoker="set_value_full" version="2.30">
- <doc xml:space="preserve">Provide the value for this password.
- The @value will be owned by the password object, and later freed using
- the @destroy function callback.
- Specify the @length, for a non-nul-terminated password. Pass -1 as
- @length if using a nul-terminated password, and @length will be
- calculated automatically. (Note that the terminating nul is not
- considered part of the password in this case.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value for the password</doc>
- <type name="guint8" c:type="guchar*"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of the password, or -1</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a function to use to free the password.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_description"
- c:identifier="g_tls_password_get_description"
- version="2.30">
- <doc xml:space="preserve">Get a description string about what the password will be used for.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The description of the password.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="g_tls_password_get_flags"
- version="2.30">
- <doc xml:space="preserve">Get flags about the password.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The flags about the password.</doc>
- <type name="TlsPasswordFlags" c:type="GTlsPasswordFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_value"
- c:identifier="g_tls_password_get_value"
- version="2.30">
- <doc xml:space="preserve">Get the password value. If @length is not %NULL then it will be
- filled in with the length of the password value. (Note that the
- password value is not nul-terminated, so you can only pass %NULL
- for @length in contexts where you know the password will have a
- certain fixed length.)</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The password value (owned by the password object).</doc>
- <type name="guint8" c:type="const guchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="length"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">location to place the length of the password.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_warning"
- c:identifier="g_tls_password_get_warning"
- version="2.30">
- <doc xml:space="preserve">Get a user readable translated warning. Usually this warning is a
- representation of the password flags returned from
- g_tls_password_get_flags().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The warning.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_description"
- c:identifier="g_tls_password_set_description"
- version="2.30">
- <doc xml:space="preserve">Set a description string about what the password will be used for.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="description" transfer-ownership="none">
- <doc xml:space="preserve">The description of the password</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flags"
- c:identifier="g_tls_password_set_flags"
- version="2.30">
- <doc xml:space="preserve">Set flags about the password.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">The flags about the password</doc>
- <type name="TlsPasswordFlags" c:type="GTlsPasswordFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_value"
- c:identifier="g_tls_password_set_value"
- version="2.30">
- <doc xml:space="preserve">Set the value for this password. The @value will be copied by the password
- object.
- Specify the @length, for a non-nul-terminated password. Pass -1 as
- @length if using a nul-terminated password, and @length will be
- calculated automatically. (Note that the terminating nul is not
- considered part of the password in this case.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the new password value</doc>
- <type name="guint8" c:type="const guchar*"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of the password, or -1</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_value_full"
- c:identifier="g_tls_password_set_value_full"
- version="2.30">
- <doc xml:space="preserve">Provide the value for this password.
- The @value will be owned by the password object, and later freed using
- the @destroy function callback.
- Specify the @length, for a non-nul-terminated password. Pass -1 as
- @length if using a nul-terminated password, and @length will be
- calculated automatically. (Note that the terminating nul is not
- considered part of the password in this case.)</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value for the password</doc>
- <type name="guint8" c:type="guchar*"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of the password, or -1</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a function to use to free the password.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_warning"
- c:identifier="g_tls_password_set_warning"
- version="2.30">
- <doc xml:space="preserve">Set a user readable translated warning. Usually this warning is a
- representation of the password flags returned from
- g_tls_password_get_flags().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </instance-parameter>
- <parameter name="warning" transfer-ownership="none">
- <doc xml:space="preserve">The user readable warning</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="description" writable="1" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="flags" writable="1" transfer-ownership="none">
- <type name="TlsPasswordFlags"/>
- </property>
- <property name="warning" writable="1" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="TlsPasswordPrivate" c:type="GTlsPasswordPrivate*"/>
- </field>
- </class>
- <record name="TlsPasswordClass"
- c:type="GTlsPasswordClass"
- glib:is-gtype-struct-for="TlsPassword">
- <doc xml:space="preserve">Class structure for #GTlsPassword.</doc>
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="get_value">
- <callback name="get_value">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The password value (owned by the password object).</doc>
- <type name="guint8" c:type="const guchar*"/>
- </return-value>
- <parameters>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="length"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">location to place the length of the password.</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_value">
- <callback name="set_value">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="password" transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsPassword object</doc>
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">the value for the password</doc>
- <type name="guint8" c:type="guchar*"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <doc xml:space="preserve">the length of the password, or -1</doc>
- <type name="gssize" c:type="gssize"/>
- </parameter>
- <parameter name="destroy"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a function to use to free the password.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_default_warning">
- <callback name="get_default_warning">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="password" transfer-ownership="none">
- <type name="TlsPassword" c:type="GTlsPassword*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <bitfield name="TlsPasswordFlags"
- version="2.30"
- glib:type-name="GTlsPasswordFlags"
- glib:get-type="g_tls_password_flags_get_type"
- c:type="GTlsPasswordFlags">
- <doc xml:space="preserve">Various flags for the password.</doc>
- <member name="none"
- value="0"
- c:identifier="G_TLS_PASSWORD_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags</doc>
- </member>
- <member name="retry"
- value="2"
- c:identifier="G_TLS_PASSWORD_RETRY"
- glib:nick="retry">
- <doc xml:space="preserve">The password was wrong, and the user should retry.</doc>
- </member>
- <member name="many_tries"
- value="4"
- c:identifier="G_TLS_PASSWORD_MANY_TRIES"
- glib:nick="many-tries">
- <doc xml:space="preserve">Hint to the user that the password has been
- wrong many times, and the user may not have many chances left.</doc>
- </member>
- <member name="final_try"
- value="8"
- c:identifier="G_TLS_PASSWORD_FINAL_TRY"
- glib:nick="final-try">
- <doc xml:space="preserve">Hint to the user that this is the last try to get
- this password right.</doc>
- </member>
- </bitfield>
- <record name="TlsPasswordPrivate"
- c:type="GTlsPasswordPrivate"
- disguised="1">
- </record>
- <enumeration name="TlsRehandshakeMode"
- version="2.28"
- glib:type-name="GTlsRehandshakeMode"
- glib:get-type="g_tls_rehandshake_mode_get_type"
- c:type="GTlsRehandshakeMode">
- <doc xml:space="preserve">When to allow rehandshaking. See
- g_tls_connection_set_rehandshake_mode().</doc>
- <member name="never"
- value="0"
- c:identifier="G_TLS_REHANDSHAKE_NEVER"
- glib:nick="never">
- <doc xml:space="preserve">Never allow rehandshaking</doc>
- </member>
- <member name="safely"
- value="1"
- c:identifier="G_TLS_REHANDSHAKE_SAFELY"
- glib:nick="safely">
- <doc xml:space="preserve">Allow safe rehandshaking only</doc>
- </member>
- <member name="unsafely"
- value="2"
- c:identifier="G_TLS_REHANDSHAKE_UNSAFELY"
- glib:nick="unsafely">
- <doc xml:space="preserve">Allow unsafe rehandshaking</doc>
- </member>
- </enumeration>
- <interface name="TlsServerConnection"
- c:symbol-prefix="tls_server_connection"
- c:type="GTlsServerConnection"
- version="2.28"
- glib:type-name="GTlsServerConnection"
- glib:get-type="g_tls_server_connection_get_type"
- glib:type-struct="TlsServerConnectionInterface">
- <doc xml:space="preserve">#GTlsServerConnection is the server-side subclass of #GTlsConnection,
- representing a server-side TLS connection.</doc>
- <prerequisite name="TlsConnection"/>
- <function name="new"
- c:identifier="g_tls_server_connection_new"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a new #GTlsServerConnection wrapping @base_io_stream (which
- must have pollable input and output streams).
- See the documentation for #GTlsConnection:base-io-stream for restrictions
- on when application code can run operations on the @base_io_stream after
- this function has returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GTlsServerConnection, or %NULL on error</doc>
- <type name="TlsServerConnection" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_io_stream" transfer-ownership="none">
- <doc xml:space="preserve">the #GIOStream to wrap</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="certificate"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the default server certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </function>
- <property name="authentication-mode"
- version="2.28"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The #GTlsAuthenticationMode for the server. This can be changed
- before calling g_tls_connection_handshake() if you want to
- rehandshake with a different mode from the initial handshake.</doc>
- <type name="TlsAuthenticationMode"/>
- </property>
- </interface>
- <record name="TlsServerConnectionInterface"
- c:type="GTlsServerConnectionInterface"
- glib:is-gtype-struct-for="TlsServerConnection"
- version="2.26">
- <doc xml:space="preserve">vtable for a #GTlsServerConnection implementation.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- </record>
- <class name="UnixConnection"
- c:symbol-prefix="unix_connection"
- c:type="GUnixConnection"
- parent="SocketConnection"
- glib:type-name="GUnixConnection"
- glib:get-type="g_unix_connection_get_type"
- glib:type-struct="UnixConnectionClass">
- <doc xml:space="preserve">This is the subclass of #GSocketConnection that is created
- for UNIX domain sockets.
- It contains functions to do some of the UNIX socket specific
- functionality like passing file descriptors.
- Note that `<gio/gunixconnection.h>` belongs to the UNIX-specific
- GIO interfaces, thus you have to use the `gio-unix-2.0.pc`
- pkg-config file when using it.</doc>
- <method name="receive_credentials"
- c:identifier="g_unix_connection_receive_credentials"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Receives credentials from the sending end of the connection. The
- sending end has to call g_unix_connection_send_credentials() (or
- similar) for this to work.
- As well as reading the credentials this also reads (and discards) a
- single byte from the stream, as this is required for credentials
- passing to work on some implementations.
- Other ways to exchange credentials with a foreign peer includes the
- #GUnixCredentialsMessage type and g_socket_get_credentials() function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">Received credentials on success (free with
- g_object_unref()), %NULL if @error is set.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixConnection.</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_credentials_async"
- c:identifier="g_unix_connection_receive_credentials_async"
- version="2.32">
- <doc xml:space="preserve">Asynchronously receive credentials.
- For more details, see g_unix_connection_receive_credentials() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called. You can then call
- g_unix_connection_receive_credentials_finish() to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixConnection.</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_credentials_finish"
- c:identifier="g_unix_connection_receive_credentials_finish"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous receive credentials operation started with
- g_unix_connection_receive_credentials_async().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GCredentials, or %NULL on error.
- Free the returned object with g_object_unref().</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixConnection.</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="receive_fd"
- c:identifier="g_unix_connection_receive_fd"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Receives a file descriptor from the sending end of the connection.
- The sending end has to call g_unix_connection_send_fd() for this
- to work.
- As well as reading the fd this also reads a single byte from the
- stream, as this is required for fd passing to work on some
- implementations.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor on success, -1 on error.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixConnection</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_credentials"
- c:identifier="g_unix_connection_send_credentials"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Passes the credentials of the current user the receiving side
- of the connection. The receiving end has to call
- g_unix_connection_receive_credentials() (or similar) to accept the
- credentials.
- As well as sending the credentials this also writes a single NUL
- byte to the stream, as this is required for credentials passing to
- work on some implementations.
- Other ways to exchange credentials with a foreign peer includes the
- #GUnixCredentialsMessage type and g_socket_get_credentials() function.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if @error is set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixConnection.</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_credentials_async"
- c:identifier="g_unix_connection_send_credentials_async"
- version="2.32">
- <doc xml:space="preserve">Asynchronously send credentials.
- For more details, see g_unix_connection_send_credentials() which is
- the synchronous version of this call.
- When the operation is finished, @callback will be called. You can then call
- g_unix_connection_send_credentials_finish() to get the result of the operation.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixConnection.</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_credentials_finish"
- c:identifier="g_unix_connection_send_credentials_finish"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Finishes an asynchronous send credentials operation started with
- g_unix_connection_send_credentials_async().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the operation was successful, otherwise %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixConnection.</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult.</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_fd"
- c:identifier="g_unix_connection_send_fd"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Passes a file descriptor to the receiving side of the
- connection. The receiving end has to call g_unix_connection_receive_fd()
- to accept the file descriptor.
- As well as sending the fd this also writes a single byte to the
- stream, as this is required for fd passing to work on some
- implementations.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %TRUE on success, %NULL on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixConnection</doc>
- <type name="UnixConnection" c:type="GUnixConnection*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a file descriptor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="SocketConnection" c:type="GSocketConnection"/>
- </field>
- <field name="priv">
- <type name="UnixConnectionPrivate" c:type="GUnixConnectionPrivate*"/>
- </field>
- </class>
- <record name="UnixConnectionClass"
- c:type="GUnixConnectionClass"
- glib:is-gtype-struct-for="UnixConnection">
- <field name="parent_class">
- <type name="SocketConnectionClass" c:type="GSocketConnectionClass"/>
- </field>
- </record>
- <record name="UnixConnectionPrivate"
- c:type="GUnixConnectionPrivate"
- disguised="1">
- </record>
- <class name="UnixCredentialsMessage"
- c:symbol-prefix="unix_credentials_message"
- c:type="GUnixCredentialsMessage"
- version="2.26"
- parent="SocketControlMessage"
- glib:type-name="GUnixCredentialsMessage"
- glib:get-type="g_unix_credentials_message_get_type"
- glib:type-struct="UnixCredentialsMessageClass">
- <doc xml:space="preserve">This #GSocketControlMessage contains a #GCredentials instance. It
- may be sent using g_socket_send_message() and received using
- g_socket_receive_message() over UNIX sockets (ie: sockets in the
- %G_SOCKET_FAMILY_UNIX family).
- For an easier way to send and receive credentials over
- stream-oriented UNIX sockets, see
- g_unix_connection_send_credentials() and
- g_unix_connection_receive_credentials(). To receive credentials of
- a foreign process connected to a socket, use
- g_socket_get_credentials().</doc>
- <constructor name="new"
- c:identifier="g_unix_credentials_message_new"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GUnixCredentialsMessage with credentials matching the current processes.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixCredentialsMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </return-value>
- </constructor>
- <constructor name="new_with_credentials"
- c:identifier="g_unix_credentials_message_new_with_credentials"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GUnixCredentialsMessage holding @credentials.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixCredentialsMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </return-value>
- <parameters>
- <parameter name="credentials" transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials object.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="is_supported"
- c:identifier="g_unix_credentials_message_is_supported"
- version="2.26">
- <doc xml:space="preserve">Checks if passing #GCredentials on a #GSocket is supported on this platform.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if supported, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <method name="get_credentials"
- c:identifier="g_unix_credentials_message_get_credentials"
- version="2.26">
- <doc xml:space="preserve">Gets the credentials stored in @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A #GCredentials instance. Do not free, it is owned by @message.</doc>
- <type name="Credentials" c:type="GCredentials*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GUnixCredentialsMessage.</doc>
- <type name="UnixCredentialsMessage"
- c:type="GUnixCredentialsMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="credentials"
- version="2.26"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The credentials stored in the message.</doc>
- <type name="Credentials"/>
- </property>
- <field name="parent_instance">
- <type name="SocketControlMessage" c:type="GSocketControlMessage"/>
- </field>
- <field name="priv">
- <type name="UnixCredentialsMessagePrivate"
- c:type="GUnixCredentialsMessagePrivate*"/>
- </field>
- </class>
- <record name="UnixCredentialsMessageClass"
- c:type="GUnixCredentialsMessageClass"
- glib:is-gtype-struct-for="UnixCredentialsMessage"
- version="2.26">
- <doc xml:space="preserve">Class structure for #GUnixCredentialsMessage.</doc>
- <field name="parent_class">
- <type name="SocketControlMessageClass"
- c:type="GSocketControlMessageClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="UnixCredentialsMessagePrivate"
- c:type="GUnixCredentialsMessagePrivate"
- disguised="1">
- </record>
- <class name="UnixFDList"
- c:symbol-prefix="unix_fd_list"
- c:type="GUnixFDList"
- parent="GObject.Object"
- glib:type-name="GUnixFDList"
- glib:get-type="g_unix_fd_list_get_type"
- glib:type-struct="UnixFDListClass">
- <doc xml:space="preserve">A #GUnixFDList contains a list of file descriptors. It owns the file
- descriptors that it contains, closing them when finalized.
- It may be wrapped in a #GUnixFDMessage and sent over a #GSocket in
- the %G_SOCKET_ADDRESS_UNIX family by using g_socket_send_message()
- and received using g_socket_receive_message().
- Note that `<gio/gunixfdlist.h>` belongs to the UNIX-specific GIO
- interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
- file when using it.</doc>
- <constructor name="new" c:identifier="g_unix_fd_list_new" version="2.24">
- <doc xml:space="preserve">Creates a new #GUnixFDList containing no file descriptors.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </return-value>
- </constructor>
- <constructor name="new_from_array"
- c:identifier="g_unix_fd_list_new_from_array"
- version="2.24">
- <doc xml:space="preserve">Creates a new #GUnixFDList containing the file descriptors given in
- @fds. The file descriptors become the property of the new list and
- may no longer be used by the caller. The array itself is owned by
- the caller.
- Each file descriptor in the array should be set to close-on-exec.
- If @n_fds is -1 then @fds must be terminated with -1.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </return-value>
- <parameters>
- <parameter name="fds" transfer-ownership="none">
- <doc xml:space="preserve">the initial list of file descriptors</doc>
- <array length="1" zero-terminated="0" c:type="gint*">
- <type name="gint" c:type="gint"/>
- </array>
- </parameter>
- <parameter name="n_fds" transfer-ownership="none">
- <doc xml:space="preserve">the length of #fds, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append"
- c:identifier="g_unix_fd_list_append"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">Adds a file descriptor to @list.
- The file descriptor is duplicated using dup(). You keep your copy
- of the descriptor and the copy contained in @list will be closed
- when @list is finalized.
- A possible cause of failure is exceeding the per-process or
- system-wide file descriptor limit.
- The index of the file descriptor in the list is returned. If you use
- this index with g_unix_fd_list_get() then you will receive back a
- duplicated copy of the same file descriptor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the index of the appended fd in case of success, else -1
- (and @error is set)</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a valid open file descriptor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get"
- c:identifier="g_unix_fd_list_get"
- version="2.24"
- throws="1">
- <doc xml:space="preserve">Gets a file descriptor out of @list.
- @index_ specifies the index of the file descriptor to get. It is a
- programmer error for @index_ to be out of range; see
- g_unix_fd_list_get_length().
- The file descriptor is duplicated using dup() and set as
- close-on-exec before being returned. You must call close() on it
- when you are done.
- A possible cause of failure is exceeding the per-process or
- system-wide file descriptor limit.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the file descriptor, or -1 in case of error</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </instance-parameter>
- <parameter name="index_" transfer-ownership="none">
- <doc xml:space="preserve">the index into the list</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_length"
- c:identifier="g_unix_fd_list_get_length"
- version="2.24">
- <doc xml:space="preserve">Gets the length of @list (ie: the number of file descriptors
- contained within).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the length of @list</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek_fds"
- c:identifier="g_unix_fd_list_peek_fds"
- version="2.24">
- <doc xml:space="preserve">Returns the array of file descriptors that is contained in this
- object.
- After this call, the descriptors remain the property of @list. The
- caller must not close them and must not free the array. The array is
- valid only until @list is changed in any way.
- If @length is non-%NULL then it is set to the number of file
- descriptors in the returned array. The returned array is also
- terminated with -1.
- This function never returns %NULL. In case there are no file
- descriptors contained in @list, an empty array is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an array of file
- descriptors</doc>
- <array length="0" zero-terminated="0" c:type="gint*">
- <type name="gint" c:type="gint"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </instance-parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the length of the returned
- array, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="steal_fds"
- c:identifier="g_unix_fd_list_steal_fds"
- version="2.24">
- <doc xml:space="preserve">Returns the array of file descriptors that is contained in this
- object.
- After this call, the descriptors are no longer contained in
- @list. Further calls will return an empty list (unless more
- descriptors have been added).
- The return result of this function must be freed with g_free().
- The caller is also responsible for closing all of the file
- descriptors. The file descriptors in the array are set to
- close-on-exec.
- If @length is non-%NULL then it is set to the number of file
- descriptors in the returned array. The returned array is also
- terminated with -1.
- This function never returns %NULL. In case there are no file
- descriptors contained in @list, an empty array is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an array of file
- descriptors</doc>
- <array length="0" zero-terminated="0" c:type="gint*">
- <type name="gint" c:type="gint"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="list" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </instance-parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the length of the returned
- array, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv">
- <type name="UnixFDListPrivate" c:type="GUnixFDListPrivate*"/>
- </field>
- </class>
- <record name="UnixFDListClass"
- c:type="GUnixFDListClass"
- glib:is-gtype-struct-for="UnixFDList">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="UnixFDListPrivate" c:type="GUnixFDListPrivate" disguised="1">
- </record>
- <class name="UnixFDMessage"
- c:symbol-prefix="unix_fd_message"
- c:type="GUnixFDMessage"
- parent="SocketControlMessage"
- glib:type-name="GUnixFDMessage"
- glib:get-type="g_unix_fd_message_get_type"
- glib:type-struct="UnixFDMessageClass">
- <doc xml:space="preserve">This #GSocketControlMessage contains a #GUnixFDList.
- It may be sent using g_socket_send_message() and received using
- g_socket_receive_message() over UNIX sockets (ie: sockets in the
- %G_SOCKET_ADDRESS_UNIX family). The file descriptors are copied
- between processes by the kernel.
- For an easier way to send and receive file descriptors over
- stream-oriented UNIX sockets, see g_unix_connection_send_fd() and
- g_unix_connection_receive_fd().
- Note that `<gio/gunixfdmessage.h>` belongs to the UNIX-specific GIO
- interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
- file when using it.</doc>
- <constructor name="new"
- c:identifier="g_unix_fd_message_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GUnixFDMessage containing an empty file descriptor
- list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixFDMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </return-value>
- </constructor>
- <constructor name="new_with_fd_list"
- c:identifier="g_unix_fd_message_new_with_fd_list"
- version="2.24">
- <doc xml:space="preserve">Creates a new #GUnixFDMessage containing @list.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixFDMessage</doc>
- <type name="SocketControlMessage" c:type="GSocketControlMessage*"/>
- </return-value>
- <parameters>
- <parameter name="fd_list" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDList</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="append_fd"
- c:identifier="g_unix_fd_message_append_fd"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Adds a file descriptor to @message.
- The file descriptor is duplicated using dup(). You keep your copy
- of the descriptor and the copy contained in @message will be closed
- when @message is finalized.
- A possible cause of failure is exceeding the per-process or
- system-wide file descriptor limit.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case of success, else %FALSE (and @error is set)</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDMessage</doc>
- <type name="UnixFDMessage" c:type="GUnixFDMessage*"/>
- </instance-parameter>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a valid open file descriptor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_fd_list"
- c:identifier="g_unix_fd_message_get_fd_list"
- version="2.24">
- <doc xml:space="preserve">Gets the #GUnixFDList contained in @message. This function does not
- return a reference to the caller, but the returned list is valid for
- the lifetime of @message.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GUnixFDList from @message</doc>
- <type name="UnixFDList" c:type="GUnixFDList*"/>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDMessage</doc>
- <type name="UnixFDMessage" c:type="GUnixFDMessage*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="steal_fds"
- c:identifier="g_unix_fd_message_steal_fds"
- version="2.22">
- <doc xml:space="preserve">Returns the array of file descriptors that is contained in this
- object.
- After this call, the descriptors are no longer contained in
- @message. Further calls will return an empty list (unless more
- descriptors have been added).
- The return result of this function must be freed with g_free().
- The caller is also responsible for closing all of the file
- descriptors.
- If @length is non-%NULL then it is set to the number of file
- descriptors in the returned array. The returned array is also
- terminated with -1.
- This function never returns %NULL. In case there are no file
- descriptors contained in @message, an empty array is returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an array of file
- descriptors</doc>
- <array length="0" zero-terminated="0" c:type="gint*">
- <type name="gint" c:type="gint"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixFDMessage</doc>
- <type name="UnixFDMessage" c:type="GUnixFDMessage*"/>
- </instance-parameter>
- <parameter name="length"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the length of the returned
- array, or %NULL</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <property name="fd-list"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="UnixFDList"/>
- </property>
- <field name="parent_instance">
- <type name="SocketControlMessage" c:type="GSocketControlMessage"/>
- </field>
- <field name="priv">
- <type name="UnixFDMessagePrivate" c:type="GUnixFDMessagePrivate*"/>
- </field>
- </class>
- <record name="UnixFDMessageClass"
- c:type="GUnixFDMessageClass"
- glib:is-gtype-struct-for="UnixFDMessage">
- <field name="parent_class">
- <type name="SocketControlMessageClass"
- c:type="GSocketControlMessageClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="UnixFDMessagePrivate"
- c:type="GUnixFDMessagePrivate"
- disguised="1">
- </record>
- <class name="UnixInputStream"
- c:symbol-prefix="unix_input_stream"
- c:type="GUnixInputStream"
- parent="InputStream"
- glib:type-name="GUnixInputStream"
- glib:get-type="g_unix_input_stream_get_type"
- glib:type-struct="UnixInputStreamClass">
- <doc xml:space="preserve">#GUnixInputStream implements #GInputStream for reading from a UNIX
- file descriptor, including asynchronous operations. (If the file
- descriptor refers to a socket or pipe, this will use poll() to do
- asynchronous I/O. If it refers to a regular file, it will fall back
- to doing asynchronous I/O in another thread.)
- Note that `<gio/gunixinputstream.h>` belongs to the UNIX-specific GIO
- interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config
- file when using it.</doc>
- <implements name="FileDescriptorBased"/>
- <implements name="PollableInputStream"/>
- <constructor name="new" c:identifier="g_unix_input_stream_new">
- <doc xml:space="preserve">Creates a new #GUnixInputStream for the given @fd.
- If @close_fd is %TRUE, the file descriptor will be closed
- when the stream is closed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a UNIX file descriptor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="close_fd" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to close the file descriptor when done</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_close_fd"
- c:identifier="g_unix_input_stream_get_close_fd"
- version="2.20">
- <doc xml:space="preserve">Returns whether the file descriptor of @stream will be
- closed when the stream is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file descriptor is closed when done</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixInputStream</doc>
- <type name="UnixInputStream" c:type="GUnixInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_fd"
- c:identifier="g_unix_input_stream_get_fd"
- version="2.20">
- <doc xml:space="preserve">Return the UNIX file descriptor that the stream reads from.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor of @stream</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixInputStream</doc>
- <type name="UnixInputStream" c:type="GUnixInputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_close_fd"
- c:identifier="g_unix_input_stream_set_close_fd"
- version="2.20">
- <doc xml:space="preserve">Sets whether the file descriptor of @stream shall be closed
- when the stream is closed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixInputStream</doc>
- <type name="UnixInputStream" c:type="GUnixInputStream*"/>
- </instance-parameter>
- <parameter name="close_fd" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to close the file descriptor when done</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="close-fd"
- version="2.20"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether to close the file descriptor when the stream is closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="fd"
- version="2.20"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor that the stream reads from.</doc>
- <type name="gint" c:type="gint"/>
- </property>
- <field name="parent_instance">
- <type name="InputStream" c:type="GInputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="UnixInputStreamPrivate" c:type="GUnixInputStreamPrivate*"/>
- </field>
- </class>
- <record name="UnixInputStreamClass"
- c:type="GUnixInputStreamClass"
- glib:is-gtype-struct-for="UnixInputStream">
- <field name="parent_class">
- <type name="InputStreamClass" c:type="GInputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="UnixInputStreamPrivate"
- c:type="GUnixInputStreamPrivate"
- disguised="1">
- </record>
- <record name="UnixMountEntry" c:type="GUnixMountEntry" disguised="1">
- <doc xml:space="preserve">Defines a Unix mount entry (e.g. <filename>/media/cdrom</filename>).
- This corresponds roughly to a mtab entry.</doc>
- </record>
- <class name="UnixMountMonitor"
- c:symbol-prefix="unix_mount_monitor"
- c:type="GUnixMountMonitor"
- parent="GObject.Object"
- glib:type-name="GUnixMountMonitor"
- glib:get-type="g_unix_mount_monitor_get_type"
- glib:type-struct="UnixMountMonitorClass">
- <doc xml:space="preserve">Watches #GUnixMounts for changes.</doc>
- <constructor name="new"
- c:identifier="g_unix_mount_monitor_new"
- deprecated="1"
- deprecated-version="2.44">
- <doc xml:space="preserve">Deprecated alias for g_unix_mount_monitor_get().
- This function was never a true constructor, which is why it was
- renamed.</doc>
- <doc-deprecated xml:space="preserve">Use g_unix_mount_monitor_get() instead.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GUnixMountMonitor.</doc>
- <type name="UnixMountMonitor" c:type="GUnixMountMonitor*"/>
- </return-value>
- </constructor>
- <function name="get"
- c:identifier="g_unix_mount_monitor_get"
- version="2.44">
- <doc xml:space="preserve">Gets the #GUnixMountMonitor for the current thread-default main
- context.
- The mount monitor can be used to monitor for changes to the list of
- mounted filesystems as well as the list of mount points (ie: fstab
- entries).
- You must only call g_object_unref() on the return value from under
- the same main context as you called this function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GUnixMountMonitor.</doc>
- <type name="UnixMountMonitor" c:type="GUnixMountMonitor*"/>
- </return-value>
- </function>
- <method name="set_rate_limit"
- c:identifier="g_unix_mount_monitor_set_rate_limit"
- version="2.18"
- deprecated="1"
- deprecated-version="2.44">
- <doc xml:space="preserve">This function does nothing.
- Before 2.44, this was a partially-effective way of controlling the
- rate at which events would be reported under some uncommon
- circumstances. Since @mount_monitor is a singleton, it also meant
- that calling this function would have side effects for other users of
- the monitor.</doc>
- <doc-deprecated xml:space="preserve">This function does nothing. Don't call it.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountMonitor</doc>
- <type name="UnixMountMonitor" c:type="GUnixMountMonitor*"/>
- </instance-parameter>
- <parameter name="limit_msec" transfer-ownership="none">
- <doc xml:space="preserve">a integer with the limit in milliseconds to
- poll for changes.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="mountpoints-changed" when="last">
- <doc xml:space="preserve">Emitted when the unix mount points have changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="mounts-changed" when="last">
- <doc xml:space="preserve">Emitted when the unix mounts have changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </class>
- <record name="UnixMountMonitorClass"
- c:type="GUnixMountMonitorClass"
- disguised="1"
- glib:is-gtype-struct-for="UnixMountMonitor">
- </record>
- <record name="UnixMountPoint" c:type="GUnixMountPoint" disguised="1">
- <doc xml:space="preserve">Defines a Unix mount point (e.g. <filename>/dev</filename>).
- This corresponds roughly to a fstab entry.</doc>
- <method name="compare" c:identifier="g_unix_mount_point_compare">
- <doc xml:space="preserve">Compares two unix mount points.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">1, 0 or -1 if @mount1 is greater than, equal to,
- or less than @mount2, respectively.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount1" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMount.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- <parameter name="mount2" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMount.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="g_unix_mount_point_free">
- <doc xml:space="preserve">Frees a unix mount point.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">unix mount point to free.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_device_path"
- c:identifier="g_unix_mount_point_get_device_path">
- <doc xml:space="preserve">Gets the device path for a unix mount point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the device path.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_fs_type" c:identifier="g_unix_mount_point_get_fs_type">
- <doc xml:space="preserve">Gets the file system type for the mount point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file system type.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_mount_path"
- c:identifier="g_unix_mount_point_get_mount_path">
- <doc xml:space="preserve">Gets the mount path for a unix mount point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the mount path.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_options"
- c:identifier="g_unix_mount_point_get_options"
- version="2.32">
- <doc xml:space="preserve">Gets the options for the mount point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the options.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="guess_can_eject"
- c:identifier="g_unix_mount_point_guess_can_eject">
- <doc xml:space="preserve">Guesses whether a Unix mount point can be ejected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mount_point is deemed to be ejectable.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="guess_icon" c:identifier="g_unix_mount_point_guess_icon">
- <doc xml:space="preserve">Guesses the icon of a Unix mount point.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="guess_name" c:identifier="g_unix_mount_point_guess_name">
- <doc xml:space="preserve">Guesses the name of a Unix mount point.
- The result is a translated string.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A newly allocated string that must
- be freed with g_free()</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="guess_symbolic_icon"
- c:identifier="g_unix_mount_point_guess_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Guesses the symbolic icon of a Unix mount point.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_loopback" c:identifier="g_unix_mount_point_is_loopback">
- <doc xml:space="preserve">Checks if a unix mount point is a loopback device.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount point is a loopback. %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_readonly" c:identifier="g_unix_mount_point_is_readonly">
- <doc xml:space="preserve">Checks if a unix mount point is read only.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a mount point is read only.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_user_mountable"
- c:identifier="g_unix_mount_point_is_user_mountable">
- <doc xml:space="preserve">Checks if a unix mount point is mountable by the user.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount point is user mountable.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="mount_point" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountPoint.</doc>
- <type name="UnixMountPoint" c:type="GUnixMountPoint*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <class name="UnixOutputStream"
- c:symbol-prefix="unix_output_stream"
- c:type="GUnixOutputStream"
- parent="OutputStream"
- glib:type-name="GUnixOutputStream"
- glib:get-type="g_unix_output_stream_get_type"
- glib:type-struct="UnixOutputStreamClass">
- <doc xml:space="preserve">#GUnixOutputStream implements #GOutputStream for writing to a UNIX
- file descriptor, including asynchronous operations. (If the file
- descriptor refers to a socket or pipe, this will use poll() to do
- asynchronous I/O. If it refers to a regular file, it will fall back
- to doing asynchronous I/O in another thread.)
- Note that `<gio/gunixoutputstream.h>` belongs to the UNIX-specific GIO
- interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config file
- when using it.</doc>
- <implements name="FileDescriptorBased"/>
- <implements name="PollableOutputStream"/>
- <constructor name="new" c:identifier="g_unix_output_stream_new">
- <doc xml:space="preserve">Creates a new #GUnixOutputStream for the given @fd.
- If @close_fd, is %TRUE, the file descriptor will be closed when
- the output stream is destroyed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GOutputStream</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <doc xml:space="preserve">a UNIX file descriptor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="close_fd" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to close the file descriptor when done</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_close_fd"
- c:identifier="g_unix_output_stream_get_close_fd"
- version="2.20">
- <doc xml:space="preserve">Returns whether the file descriptor of @stream will be
- closed when the stream is closed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file descriptor is closed when done</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixOutputStream</doc>
- <type name="UnixOutputStream" c:type="GUnixOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_fd"
- c:identifier="g_unix_output_stream_get_fd"
- version="2.20">
- <doc xml:space="preserve">Return the UNIX file descriptor that the stream writes to.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor of @stream</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixOutputStream</doc>
- <type name="UnixOutputStream" c:type="GUnixOutputStream*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_close_fd"
- c:identifier="g_unix_output_stream_set_close_fd"
- version="2.20">
- <doc xml:space="preserve">Sets whether the file descriptor of @stream shall be closed
- when the stream is closed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixOutputStream</doc>
- <type name="UnixOutputStream" c:type="GUnixOutputStream*"/>
- </instance-parameter>
- <parameter name="close_fd" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to close the file descriptor when done</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <property name="close-fd"
- version="2.20"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether to close the file descriptor when the stream is closed.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="fd"
- version="2.20"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">The file descriptor that the stream writes to.</doc>
- <type name="gint" c:type="gint"/>
- </property>
- <field name="parent_instance">
- <type name="OutputStream" c:type="GOutputStream"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="UnixOutputStreamPrivate"
- c:type="GUnixOutputStreamPrivate*"/>
- </field>
- </class>
- <record name="UnixOutputStreamClass"
- c:type="GUnixOutputStreamClass"
- glib:is-gtype-struct-for="UnixOutputStream">
- <field name="parent_class">
- <type name="OutputStreamClass" c:type="GOutputStreamClass"/>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <record name="UnixOutputStreamPrivate"
- c:type="GUnixOutputStreamPrivate"
- disguised="1">
- </record>
- <class name="UnixSocketAddress"
- c:symbol-prefix="unix_socket_address"
- c:type="GUnixSocketAddress"
- parent="SocketAddress"
- glib:type-name="GUnixSocketAddress"
- glib:get-type="g_unix_socket_address_get_type"
- glib:type-struct="UnixSocketAddressClass">
- <doc xml:space="preserve">Support for UNIX-domain (also known as local) sockets.
- UNIX domain sockets are generally visible in the filesystem.
- However, some systems support abstract socket names which are not
- visible in the filesystem and not affected by the filesystem
- permissions, visibility, etc. Currently this is only supported
- under Linux. If you attempt to use abstract sockets on other
- systems, function calls may return %G_IO_ERROR_NOT_SUPPORTED
- errors. You can use g_unix_socket_address_abstract_names_supported()
- to see if abstract names are supported.
- Note that `<gio/gunixsocketaddress.h>` belongs to the UNIX-specific GIO
- interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config file
- when using it.</doc>
- <implements name="SocketConnectable"/>
- <constructor name="new"
- c:identifier="g_unix_socket_address_new"
- version="2.22">
- <doc xml:space="preserve">Creates a new #GUnixSocketAddress for @path.
- To create abstract socket addresses, on systems that support that,
- use g_unix_socket_address_new_abstract().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">the socket path</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_abstract"
- c:identifier="g_unix_socket_address_new_abstract"
- deprecated="1">
- <doc xml:space="preserve">Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
- #GUnixSocketAddress for @path.</doc>
- <doc-deprecated xml:space="preserve">Use g_unix_socket_address_new_with_type().</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">the abstract name</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="gchar"/>
- </array>
- </parameter>
- <parameter name="path_len" transfer-ownership="none">
- <doc xml:space="preserve">the length of @path, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_with_type"
- c:identifier="g_unix_socket_address_new_with_type"
- version="2.26">
- <doc xml:space="preserve">Creates a new #GUnixSocketAddress of type @type with name @path.
- If @type is %G_UNIX_SOCKET_ADDRESS_PATH, this is equivalent to
- calling g_unix_socket_address_new().
- If @type is %G_UNIX_SOCKET_ADDRESS_ANONYMOUS, @path and @path_len will be
- ignored.
- If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT, then @path_len
- bytes of @path will be copied to the socket's path, and only those
- bytes will be considered part of the name. (If @path_len is -1,
- then @path is assumed to be NUL-terminated.) For example, if @path
- was "test", then calling g_socket_address_get_native_size() on the
- returned socket would return 7 (2 bytes of overhead, 1 byte for the
- abstract-socket indicator byte, and 4 bytes for the name "test").
- If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED, then
- @path_len bytes of @path will be copied to the socket's path, the
- rest of the path will be padded with 0 bytes, and the entire
- zero-padded buffer will be considered the name. (As above, if
- @path_len is -1, then @path is assumed to be NUL-terminated.) In
- this case, g_socket_address_get_native_size() will always return
- the full size of a `struct sockaddr_un`, although
- g_unix_socket_address_get_path_len() will still return just the
- length of @path.
- %G_UNIX_SOCKET_ADDRESS_ABSTRACT is preferred over
- %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED for new programs. Of course,
- when connecting to a server created by another process, you must
- use the appropriate type corresponding to how that process created
- its listening socket.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GUnixSocketAddress</doc>
- <type name="SocketAddress" c:type="GSocketAddress*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">the name</doc>
- <array length="1" zero-terminated="0" c:type="gchar*">
- <type name="gchar"/>
- </array>
- </parameter>
- <parameter name="path_len" transfer-ownership="none">
- <doc xml:space="preserve">the length of @path, or -1</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixSocketAddressType</doc>
- <type name="UnixSocketAddressType"
- c:type="GUnixSocketAddressType"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="abstract_names_supported"
- c:identifier="g_unix_socket_address_abstract_names_supported"
- version="2.22">
- <doc xml:space="preserve">Checks if abstract UNIX domain socket names are supported.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if supported, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </function>
- <method name="get_address_type"
- c:identifier="g_unix_socket_address_get_address_type"
- version="2.26">
- <doc xml:space="preserve">Gets @address's type.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixSocketAddressType</doc>
- <type name="UnixSocketAddressType" c:type="GUnixSocketAddressType"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetSocketAddress</doc>
- <type name="UnixSocketAddress" c:type="GUnixSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_is_abstract"
- c:identifier="g_unix_socket_address_get_is_abstract"
- version="2.22"
- deprecated="1">
- <doc xml:space="preserve">Tests if @address is abstract.</doc>
- <doc-deprecated xml:space="preserve">Use g_unix_socket_address_get_address_type()</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the address is abstract, %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetSocketAddress</doc>
- <type name="UnixSocketAddress" c:type="GUnixSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path"
- c:identifier="g_unix_socket_address_get_path"
- version="2.22">
- <doc xml:space="preserve">Gets @address's path, or for abstract sockets the "name".
- Guaranteed to be zero-terminated, but an abstract socket
- may contain embedded zeros, and thus you should use
- g_unix_socket_address_get_path_len() to get the true length
- of this string.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the path for @address</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetSocketAddress</doc>
- <type name="UnixSocketAddress" c:type="GUnixSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_path_len"
- c:identifier="g_unix_socket_address_get_path_len"
- version="2.22">
- <doc xml:space="preserve">Gets the length of @address's path.
- For details, see g_unix_socket_address_get_path().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the length of the path</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">a #GInetSocketAddress</doc>
- <type name="UnixSocketAddress" c:type="GUnixSocketAddress*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="abstract"
- deprecated="1"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether or not this is an abstract address</doc>
- <doc-deprecated xml:space="preserve">Use #GUnixSocketAddress:address-type, which
- distinguishes between zero-padded and non-zero-padded
- abstract addresses.</doc-deprecated>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <property name="address-type"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="UnixSocketAddressType"/>
- </property>
- <property name="path"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </property>
- <property name="path-as-array"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <array name="GLib.ByteArray">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </property>
- <field name="parent_instance">
- <type name="SocketAddress" c:type="GSocketAddress"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="UnixSocketAddressPrivate"
- c:type="GUnixSocketAddressPrivate*"/>
- </field>
- </class>
- <record name="UnixSocketAddressClass"
- c:type="GUnixSocketAddressClass"
- glib:is-gtype-struct-for="UnixSocketAddress">
- <field name="parent_class">
- <type name="SocketAddressClass" c:type="GSocketAddressClass"/>
- </field>
- </record>
- <record name="UnixSocketAddressPrivate"
- c:type="GUnixSocketAddressPrivate"
- disguised="1">
- </record>
- <enumeration name="UnixSocketAddressType"
- version="2.26"
- glib:type-name="GUnixSocketAddressType"
- glib:get-type="g_unix_socket_address_type_get_type"
- c:type="GUnixSocketAddressType">
- <doc xml:space="preserve">The type of name used by a #GUnixSocketAddress.
- %G_UNIX_SOCKET_ADDRESS_PATH indicates a traditional unix domain
- socket bound to a filesystem path. %G_UNIX_SOCKET_ADDRESS_ANONYMOUS
- indicates a socket not bound to any name (eg, a client-side socket,
- or a socket created with socketpair()).
- For abstract sockets, there are two incompatible ways of naming
- them; the man pages suggest using the entire `struct sockaddr_un`
- as the name, padding the unused parts of the %sun_path field with
- zeroes; this corresponds to %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED.
- However, many programs instead just use a portion of %sun_path, and
- pass an appropriate smaller length to bind() or connect(). This is
- %G_UNIX_SOCKET_ADDRESS_ABSTRACT.</doc>
- <member name="invalid"
- value="0"
- c:identifier="G_UNIX_SOCKET_ADDRESS_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">invalid</doc>
- </member>
- <member name="anonymous"
- value="1"
- c:identifier="G_UNIX_SOCKET_ADDRESS_ANONYMOUS"
- glib:nick="anonymous">
- <doc xml:space="preserve">anonymous</doc>
- </member>
- <member name="path"
- value="2"
- c:identifier="G_UNIX_SOCKET_ADDRESS_PATH"
- glib:nick="path">
- <doc xml:space="preserve">a filesystem path</doc>
- </member>
- <member name="abstract"
- value="3"
- c:identifier="G_UNIX_SOCKET_ADDRESS_ABSTRACT"
- glib:nick="abstract">
- <doc xml:space="preserve">an abstract name</doc>
- </member>
- <member name="abstract_padded"
- value="4"
- c:identifier="G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED"
- glib:nick="abstract-padded">
- <doc xml:space="preserve">an abstract name, 0-padded
- to the full length of a unix socket name</doc>
- </member>
- </enumeration>
- <constant name="VFS_EXTENSION_POINT_NAME"
- value="gio-vfs"
- c:type="G_VFS_EXTENSION_POINT_NAME">
- <doc xml:space="preserve">Extension point for #GVfs functionality.
- See [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_IDENTIFIER_KIND_CLASS"
- value="class"
- c:type="G_VOLUME_IDENTIFIER_KIND_CLASS">
- <doc xml:space="preserve">The string used to obtain the volume class with g_volume_get_identifier().
- Known volume classes include `device` and `network`. Other classes may
- be added in the future.
- This is intended to be used by applications to classify #GVolume
- instances into different sections - for example a file manager or
- file chooser can use this information to show `network` volumes under
- a "Network" heading and `device` volumes under a "Devices" heading.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_IDENTIFIER_KIND_HAL_UDI"
- value="hal-udi"
- c:type="G_VOLUME_IDENTIFIER_KIND_HAL_UDI">
- <doc xml:space="preserve">The string used to obtain a Hal UDI with g_volume_get_identifier().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_IDENTIFIER_KIND_LABEL"
- value="label"
- c:type="G_VOLUME_IDENTIFIER_KIND_LABEL">
- <doc xml:space="preserve">The string used to obtain a filesystem label with g_volume_get_identifier().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_IDENTIFIER_KIND_NFS_MOUNT"
- value="nfs-mount"
- c:type="G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT">
- <doc xml:space="preserve">The string used to obtain a NFS mount with g_volume_get_identifier().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_IDENTIFIER_KIND_UNIX_DEVICE"
- value="unix-device"
- c:type="G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE">
- <doc xml:space="preserve">The string used to obtain a Unix device path with g_volume_get_identifier().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_IDENTIFIER_KIND_UUID"
- value="uuid"
- c:type="G_VOLUME_IDENTIFIER_KIND_UUID">
- <doc xml:space="preserve">The string used to obtain a UUID with g_volume_get_identifier().</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VOLUME_MONITOR_EXTENSION_POINT_NAME"
- value="gio-volume-monitor"
- c:type="G_VOLUME_MONITOR_EXTENSION_POINT_NAME">
- <doc xml:space="preserve">Extension point for volume monitor functionality.
- See [Extending GIO][extending-gio].</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <class name="Vfs"
- c:symbol-prefix="vfs"
- c:type="GVfs"
- parent="GObject.Object"
- glib:type-name="GVfs"
- glib:get-type="g_vfs_get_type"
- glib:type-struct="VfsClass">
- <doc xml:space="preserve">Entry point for using GIO functionality.</doc>
- <function name="get_default" c:identifier="g_vfs_get_default">
- <doc xml:space="preserve">Gets the default #GVfs for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </return-value>
- </function>
- <function name="get_local" c:identifier="g_vfs_get_local">
- <doc xml:space="preserve">Gets the local #GVfs for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </return-value>
- </function>
- <virtual-method name="add_writable_namespaces">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="deserialize_icon" introspectable="0">
- <return-value>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_file_for_path" invoker="get_file_for_path">
- <doc xml:space="preserve">Gets a #GFile for @path.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a VFS path.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_file_for_uri" invoker="get_file_for_uri">
- <doc xml:space="preserve">Gets a #GFile for @uri.
- This operation never fails, but the returned object
- might not support any I/O operation if the URI
- is malformed or if the URI scheme is not supported.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a#GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_supported_uri_schemes"
- invoker="get_supported_uri_schemes">
- <doc xml:space="preserve">Gets a list of URI schemes supported by @vfs.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %NULL-terminated array of strings.
- The returned array belongs to GIO and must
- not be freed or modified.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="is_active" invoker="is_active">
- <doc xml:space="preserve">Checks if the VFS is active.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if construction of the @vfs was successful
- and it is now active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="local_file_add_info">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="device" transfer-ownership="none">
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="attribute_matcher" transfer-ownership="none">
- <type name="FileAttributeMatcher" c:type="GFileAttributeMatcher*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="extra_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="free_extra_data"
- transfer-ownership="none"
- scope="async">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="local_file_moved">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="source" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="local_file_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="local_file_set_attributes" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="parse_name" invoker="parse_name">
- <doc xml:space="preserve">This operation never fails, but the returned object might
- not support any I/O operations if the @parse_name cannot
- be parsed by the #GVfs module.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile for the given @parse_name.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="parse_name" transfer-ownership="none">
- <doc xml:space="preserve">a string to be parsed by the VFS module.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_file_for_path" c:identifier="g_vfs_get_file_for_path">
- <doc xml:space="preserve">Gets a #GFile for @path.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a VFS path.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_file_for_uri" c:identifier="g_vfs_get_file_for_uri">
- <doc xml:space="preserve">Gets a #GFile for @uri.
- This operation never fails, but the returned object
- might not support any I/O operation if the URI
- is malformed or if the URI scheme is not supported.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a#GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_supported_uri_schemes"
- c:identifier="g_vfs_get_supported_uri_schemes">
- <doc xml:space="preserve">Gets a list of URI schemes supported by @vfs.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %NULL-terminated array of strings.
- The returned array belongs to GIO and must
- not be freed or modified.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_active" c:identifier="g_vfs_is_active">
- <doc xml:space="preserve">Checks if the VFS is active.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if construction of the @vfs was successful
- and it is now active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="parse_name" c:identifier="g_vfs_parse_name">
- <doc xml:space="preserve">This operation never fails, but the returned object might
- not support any I/O operations if the @parse_name cannot
- be parsed by the #GVfs module.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile for the given @parse_name.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </instance-parameter>
- <parameter name="parse_name" transfer-ownership="none">
- <doc xml:space="preserve">a string to be parsed by the VFS module.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- </class>
- <record name="VfsClass" c:type="GVfsClass" glib:is-gtype-struct-for="Vfs">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="is_active">
- <callback name="is_active">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if construction of the @vfs was successful
- and it is now active.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_file_for_path">
- <callback name="get_file_for_path">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a VFS path.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_file_for_uri">
- <callback name="get_file_for_uri">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a#GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_supported_uri_schemes">
- <callback name="get_supported_uri_schemes">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a %NULL-terminated array of strings.
- The returned array belongs to GIO and must
- not be freed or modified.</doc>
- <array c:type="const gchar* const*">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="parse_name">
- <callback name="parse_name">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GFile for the given @parse_name.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <doc xml:space="preserve">a #GVfs.</doc>
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="parse_name" transfer-ownership="none">
- <doc xml:space="preserve">a string to be parsed by the VFS module.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="local_file_add_info">
- <callback name="local_file_add_info">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="device" transfer-ownership="none">
- <type name="guint64" c:type="guint64"/>
- </parameter>
- <parameter name="attribute_matcher" transfer-ownership="none">
- <type name="FileAttributeMatcher"
- c:type="GFileAttributeMatcher*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="extra_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="free_extra_data"
- transfer-ownership="none"
- scope="async">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_writable_namespaces">
- <callback name="add_writable_namespaces">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="FileAttributeInfoList"
- c:type="GFileAttributeInfoList*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="local_file_set_attributes">
- <callback name="local_file_set_attributes" throws="1">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="FileQueryInfoFlags" c:type="GFileQueryInfoFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="local_file_removed">
- <callback name="local_file_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="local_file_moved">
- <callback name="local_file_moved">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="deserialize_icon" introspectable="0">
- <callback name="deserialize_icon" introspectable="0">
- <return-value>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="vfs" transfer-ownership="none">
- <type name="Vfs" c:type="GVfs*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <interface name="Volume"
- c:symbol-prefix="volume"
- c:type="GVolume"
- glib:type-name="GVolume"
- glib:get-type="g_volume_get_type"
- glib:type-struct="VolumeIface">
- <doc xml:space="preserve">The #GVolume interface represents user-visible objects that can be
- mounted. Note, when porting from GnomeVFS, #GVolume is the moral
- equivalent of #GnomeVFSDrive.
- Mounting a #GVolume instance is an asynchronous operation. For more
- information about asynchronous operations, see #GAsyncResult and
- #GTask. To mount a #GVolume, first call g_volume_mount() with (at
- least) the #GVolume instance, optionally a #GMountOperation object
- and a #GAsyncReadyCallback.
- Typically, one will only want to pass %NULL for the
- #GMountOperation if automounting all volumes when a desktop session
- starts since it's not desirable to put up a lot of dialogs asking
- for credentials.
- The callback will be fired when the operation has resolved (either
- with success or failure), and a #GAsyncReady structure will be
- passed to the callback. That callback should then call
- g_volume_mount_finish() with the #GVolume instance and the
- #GAsyncReady data to see if the operation was completed
- successfully. If an @error is present when g_volume_mount_finish()
- is called, then it will be filled with any error information.
- ## Volume Identifiers # {#volume-identifier}
- It is sometimes necessary to directly access the underlying
- operating system object behind a volume (e.g. for passing a volume
- to an application via the commandline). For this purpose, GIO
- allows to obtain an 'identifier' for the volume. There can be
- different kinds of identifiers, such as Hal UDIs, filesystem labels,
- traditional Unix devices (e.g. `/dev/sda2`), UUIDs. GIO uses predefined
- strings as names for the different kinds of identifiers:
- #G_VOLUME_IDENTIFIER_KIND_HAL_UDI, #G_VOLUME_IDENTIFIER_KIND_LABEL, etc.
- Use g_volume_get_identifier() to obtain an identifier for a volume.
- Note that #G_VOLUME_IDENTIFIER_KIND_HAL_UDI will only be available
- when the gvfs hal volume monitor is in use. Other volume monitors
- will generally be able to provide the #G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE
- identifier, which can be used to obtain a hal device by means of
- libhal_manager_find_device_string_match().</doc>
- <virtual-method name="can_eject" invoker="can_eject">
- <doc xml:space="preserve">Checks if a volume can be ejected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @volume can be ejected. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="can_mount" invoker="can_mount">
- <doc xml:space="preserve">Checks if a volume can be mounted.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @volume can be mounted. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject"
- invoker="eject"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Ejects a volume. This is an asynchronous operation, and is
- finished by calling g_volume_eject_finish() with the @volume
- and #GAsyncResult returned in the @callback.</doc>
- <doc-deprecated xml:space="preserve">Use g_volume_eject_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="3">
- <doc xml:space="preserve">user data that gets passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_finish"
- invoker="eject_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a volume. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_volume_eject_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, %FALSE if operation failed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_with_operation"
- invoker="eject_with_operation"
- version="2.22">
- <doc xml:space="preserve">Ejects a volume. This is an asynchronous operation, and is
- finished by calling g_volume_eject_with_operation_finish() with the @volume
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to
- avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="eject_with_operation_finish"
- invoker="eject_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a volume. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the volume was successfully ejected. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="enumerate_identifiers"
- invoker="enumerate_identifiers">
- <doc xml:space="preserve">Gets the kinds of [identifiers][volume-identifier] that @volume has.
- Use g_volume_get_identifier() to obtain the identifiers themselves.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array
- of strings containing kinds of identifiers. Use g_strfreev() to free.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_activation_root"
- invoker="get_activation_root"
- version="2.18">
- <doc xml:space="preserve">Gets the activation root for a #GVolume if it is known ahead of
- mount time. Returns %NULL otherwise. If not %NULL and if @volume
- is mounted, then the result of g_mount_get_root() on the
- #GMount object obtained from g_volume_get_mount() will always
- either be equal or a prefix of what this function returns. In
- other words, in code
- |[<!-- language="C" -->
- GMount *mount;
- GFile *mount_root
- GFile *volume_activation_root;
- mount = g_volume_get_mount (volume); // mounted, so never NULL
- mount_root = g_mount_get_root (mount);
- volume_activation_root = g_volume_get_activation_root (volume); // assume not NULL
- ]|
- then the expression
- |[<!-- language="C" -->
- (g_file_has_prefix (volume_activation_root, mount_root) ||
- g_file_equal (volume_activation_root, mount_root))
- ]|
- will always be %TRUE.
- Activation roots are typically used in #GVolumeMonitor
- implementations to find the underlying mount to shadow, see
- g_mount_is_shadowed() for more details.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the activation root of @volume
- or %NULL. Use g_object_unref() to free.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_drive" invoker="get_drive">
- <doc xml:space="preserve">Gets the drive for the @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDrive or %NULL if @volume is not
- associated with a drive. The returned object should be unreffed
- with g_object_unref() when no longer needed.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_icon" invoker="get_icon">
- <doc xml:space="preserve">Gets the icon for @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_identifier" invoker="get_identifier">
- <doc xml:space="preserve">Gets the identifier of the given kind for @volume.
- See the [introduction][volume-identifier] for more
- information about volume identifiers.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string containing the
- requested identfier, or %NULL if the #GVolume
- doesn't have this kind of identifier</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="kind" transfer-ownership="none">
- <doc xml:space="preserve">the kind of identifier to return</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_mount" invoker="get_mount">
- <doc xml:space="preserve">Gets the mount for the @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount or %NULL if @volume isn't mounted.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_name" invoker="get_name">
- <doc xml:space="preserve">Gets the name of @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the name for the given @volume. The returned string should
- be freed with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_sort_key"
- invoker="get_sort_key"
- version="2.32">
- <doc xml:space="preserve">Gets the sort key for @volume, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @volume or %NULL if no such key is available</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_symbolic_icon"
- invoker="get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the symbolic icon for @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_uuid" invoker="get_uuid">
- <doc xml:space="preserve">Gets the UUID for the @volume. The reference is typically based on
- the file system UUID for the volume in question and should be
- considered an opaque string. Returns %NULL if there is no UUID
- available.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the UUID for @volume or %NULL if no UUID can be computed.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_finish" invoker="mount_finish" throws="1">
- <doc xml:space="preserve">Finishes mounting a volume. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.
- If the mount operation succeeded, g_volume_get_mount() on @volume
- is guaranteed to return the mount right after calling this
- function; there's no need to listen for the 'mount-added' signal on
- #GVolumeMonitor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, %FALSE if operation failed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_fn" invoker="mount">
- <doc xml:space="preserve">Mounts a volume. This is an asynchronous operation, and is
- finished by calling g_volume_mount_finish() with the @volume
- and #GAsyncResult returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data that gets passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="should_automount" invoker="should_automount">
- <doc xml:space="preserve">Returns whether the volume should be automatically mounted.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the volume should be automatically mounted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <method name="can_eject" c:identifier="g_volume_can_eject">
- <doc xml:space="preserve">Checks if a volume can be ejected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @volume can be ejected. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="can_mount" c:identifier="g_volume_can_mount">
- <doc xml:space="preserve">Checks if a volume can be mounted.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @volume can be mounted. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="eject"
- c:identifier="g_volume_eject"
- deprecated="1"
- deprecated-version="2.22">
- <doc xml:space="preserve">Ejects a volume. This is an asynchronous operation, and is
- finished by calling g_volume_eject_finish() with the @volume
- and #GAsyncResult returned in the @callback.</doc>
- <doc-deprecated xml:space="preserve">Use g_volume_eject_with_operation() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data that gets passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_finish"
- c:identifier="g_volume_eject_finish"
- deprecated="1"
- deprecated-version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a volume. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <doc-deprecated xml:space="preserve">Use g_volume_eject_with_operation_finish() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, %FALSE if operation failed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_with_operation"
- c:identifier="g_volume_eject_with_operation"
- version="2.22">
- <doc xml:space="preserve">Ejects a volume. This is an asynchronous operation, and is
- finished by calling g_volume_eject_with_operation_finish() with the @volume
- and #GAsyncResult data returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to
- avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="eject_with_operation_finish"
- c:identifier="g_volume_eject_with_operation_finish"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Finishes ejecting a volume. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the volume was successfully ejected. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="enumerate_identifiers"
- c:identifier="g_volume_enumerate_identifiers">
- <doc xml:space="preserve">Gets the kinds of [identifiers][volume-identifier] that @volume has.
- Use g_volume_get_identifier() to obtain the identifiers themselves.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array
- of strings containing kinds of identifiers. Use g_strfreev() to free.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_activation_root"
- c:identifier="g_volume_get_activation_root"
- version="2.18">
- <doc xml:space="preserve">Gets the activation root for a #GVolume if it is known ahead of
- mount time. Returns %NULL otherwise. If not %NULL and if @volume
- is mounted, then the result of g_mount_get_root() on the
- #GMount object obtained from g_volume_get_mount() will always
- either be equal or a prefix of what this function returns. In
- other words, in code
- |[<!-- language="C" -->
- GMount *mount;
- GFile *mount_root
- GFile *volume_activation_root;
- mount = g_volume_get_mount (volume); // mounted, so never NULL
- mount_root = g_mount_get_root (mount);
- volume_activation_root = g_volume_get_activation_root (volume); // assume not NULL
- ]|
- then the expression
- |[<!-- language="C" -->
- (g_file_has_prefix (volume_activation_root, mount_root) ||
- g_file_equal (volume_activation_root, mount_root))
- ]|
- will always be %TRUE.
- Activation roots are typically used in #GVolumeMonitor
- implementations to find the underlying mount to shadow, see
- g_mount_is_shadowed() for more details.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the activation root of @volume
- or %NULL. Use g_object_unref() to free.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_drive" c:identifier="g_volume_get_drive">
- <doc xml:space="preserve">Gets the drive for the @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDrive or %NULL if @volume is not
- associated with a drive. The returned object should be unreffed
- with g_object_unref() when no longer needed.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_icon" c:identifier="g_volume_get_icon">
- <doc xml:space="preserve">Gets the icon for @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_identifier" c:identifier="g_volume_get_identifier">
- <doc xml:space="preserve">Gets the identifier of the given kind for @volume.
- See the [introduction][volume-identifier] for more
- information about volume identifiers.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string containing the
- requested identfier, or %NULL if the #GVolume
- doesn't have this kind of identifier</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="kind" transfer-ownership="none">
- <doc xml:space="preserve">the kind of identifier to return</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_mount" c:identifier="g_volume_get_mount">
- <doc xml:space="preserve">Gets the mount for the @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount or %NULL if @volume isn't mounted.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="g_volume_get_name">
- <doc xml:space="preserve">Gets the name of @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the name for the given @volume. The returned string should
- be freed with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_sort_key"
- c:identifier="g_volume_get_sort_key"
- version="2.32">
- <doc xml:space="preserve">Gets the sort key for @volume, if any.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @volume or %NULL if no such key is available</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_symbolic_icon"
- c:identifier="g_volume_get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the symbolic icon for @volume.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_uuid" c:identifier="g_volume_get_uuid">
- <doc xml:space="preserve">Gets the UUID for the @volume. The reference is typically based on
- the file system UUID for the volume in question and should be
- considered an opaque string. Returns %NULL if there is no UUID
- available.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the UUID for @volume or %NULL if no UUID can be computed.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="mount" c:identifier="g_volume_mount">
- <doc xml:space="preserve">Mounts a volume. This is an asynchronous operation, and is
- finished by calling g_volume_mount_finish() with the @volume
- and #GAsyncResult returned in the @callback.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data that gets passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="mount_finish"
- c:identifier="g_volume_mount_finish"
- throws="1">
- <doc xml:space="preserve">Finishes mounting a volume. If any errors occurred during the operation,
- @error will be set to contain the errors and %FALSE will be returned.
- If the mount operation succeeded, g_volume_get_mount() on @volume
- is guaranteed to return the mount right after calling this
- function; there's no need to listen for the 'mount-added' signal on
- #GVolumeMonitor.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, %FALSE if operation failed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </method>
- <method name="should_automount" c:identifier="g_volume_should_automount">
- <doc xml:space="preserve">Returns whether the volume should be automatically mounted.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the volume should be automatically mounted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </instance-parameter>
- </parameters>
- </method>
- <glib:signal name="changed" when="last">
- <doc xml:space="preserve">Emitted when the volume has been changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="removed" when="last">
- <doc xml:space="preserve">This signal is emitted when the #GVolume have been removed. If
- the recipient is holding references to the object they should
- release them so the object can be finalized.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- </interface>
- <record name="VolumeIface"
- c:type="GVolumeIface"
- glib:is-gtype-struct-for="Volume">
- <doc xml:space="preserve">Interface for implementing operations for mountable volumes.</doc>
- <field name="g_iface">
- <doc xml:space="preserve">The parent interface.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="changed">
- <callback name="changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="removed">
- <callback name="removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_name">
- <callback name="get_name">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the name for the given @volume. The returned string should
- be freed with g_free() when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_icon">
- <callback name="get_icon">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_uuid">
- <callback name="get_uuid">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the UUID for @volume or %NULL if no UUID can be computed.
- The returned string should be freed with g_free()
- when no longer needed.</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_drive">
- <callback name="get_drive">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDrive or %NULL if @volume is not
- associated with a drive. The returned object should be unreffed
- with g_object_unref() when no longer needed.</doc>
- <type name="Drive" c:type="GDrive*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_mount">
- <callback name="get_mount">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount or %NULL if @volume isn't mounted.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_mount">
- <callback name="can_mount">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @volume can be mounted. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="can_eject">
- <callback name="can_eject">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the @volume can be ejected. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_fn">
- <callback name="mount_fn">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the operation</doc>
- <type name="MountMountFlags" c:type="GMountMountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data that gets passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_finish">
- <callback name="mount_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, %FALSE if operation failed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject">
- <callback name="eject">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="4">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="4">
- <doc xml:space="preserve">user data that gets passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_finish">
- <callback name="eject_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE, %FALSE if operation failed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_identifier">
- <callback name="get_identifier">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated string containing the
- requested identfier, or %NULL if the #GVolume
- doesn't have this kind of identifier</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="kind" transfer-ownership="none">
- <doc xml:space="preserve">the kind of identifier to return</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="enumerate_identifiers">
- <callback name="enumerate_identifiers">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a %NULL-terminated array
- of strings containing kinds of identifiers. Use g_strfreev() to free.</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="should_automount">
- <callback name="should_automount">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the volume should be automatically mounted</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_activation_root">
- <callback name="get_activation_root">
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the activation root of @volume
- or %NULL. Use g_object_unref() to free.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_with_operation">
- <callback name="eject_with_operation">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags affecting the unmount if required for eject</doc>
- <type name="MountUnmountFlags" c:type="GMountUnmountFlags"/>
- </parameter>
- <parameter name="mount_operation"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GMountOperation or %NULL to
- avoid user interaction</doc>
- <type name="MountOperation" c:type="GMountOperation*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="5">
- <doc xml:space="preserve">a #GAsyncReadyCallback, or %NULL</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="5">
- <doc xml:space="preserve">user data passed to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="eject_with_operation_finish">
- <callback name="eject_with_operation_finish" throws="1">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the volume was successfully ejected. %FALSE otherwise</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_sort_key">
- <callback name="get_sort_key">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">Sorting key for @volume or %NULL if no such key is available</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_symbolic_icon">
- <callback name="get_symbolic_icon">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon.
- The returned object should be unreffed with g_object_unref()
- when no longer needed.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume</doc>
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="VolumeMonitor"
- c:symbol-prefix="volume_monitor"
- c:type="GVolumeMonitor"
- parent="GObject.Object"
- glib:type-name="GVolumeMonitor"
- glib:get-type="g_volume_monitor_get_type"
- glib:type-struct="VolumeMonitorClass">
- <doc xml:space="preserve">#GVolumeMonitor is for listing the user interesting devices and volumes
- on the computer. In other words, what a file selector or file manager
- would show in a sidebar.
- #GVolumeMonitor is not
- [thread-default-context aware][g-main-context-push-thread-default],
- and so should not be used other than from the main thread, with no
- thread-default-context active.</doc>
- <function name="adopt_orphan_mount"
- c:identifier="g_volume_monitor_adopt_orphan_mount"
- deprecated="1"
- deprecated-version="2.20">
- <doc xml:space="preserve">This function should be called by any #GVolumeMonitor
- implementation when a new #GMount object is created that is not
- associated with a #GVolume object. It must be called just before
- emitting the @mount_added signal.
- If the return value is not %NULL, the caller must associate the
- returned #GVolume object with the #GMount. This involves returning
- it in its g_mount_get_volume() implementation. The caller must
- also listen for the "removed" signal on the returned object
- and give up its reference when handling that signal
- Similary, if implementing g_volume_monitor_adopt_orphan_mount(),
- the implementor must take a reference to @mount and return it in
- its g_volume_get_mount() implemented. Also, the implementor must
- listen for the "unmounted" signal on @mount and give up its
- reference upon handling that signal.
- There are two main use cases for this function.
- One is when implementing a user space file system driver that reads
- blocks of a block device that is already represented by the native
- volume monitor (for example a CD Audio file system driver). Such
- a driver will generate its own #GMount object that needs to be
- associated with the #GVolume object that represents the volume.
- The other is for implementing a #GVolumeMonitor whose sole purpose
- is to return #GVolume objects representing entries in the users
- "favorite servers" list or similar.</doc>
- <doc-deprecated xml:space="preserve">Instead of using this function, #GVolumeMonitor
- implementations should instead create shadow mounts with the URI of
- the mount they intend to adopt. See the proxy volume monitor in
- gvfs for an example of this. Also see g_mount_is_shadowed(),
- g_mount_shadow() and g_mount_unshadow() functions.</doc-deprecated>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the #GVolume object that is the parent for @mount or %NULL
- if no wants to adopt the #GMount.</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount object to find a parent for</doc>
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get" c:identifier="g_volume_monitor_get">
- <doc xml:space="preserve">Gets the volume monitor used by gio.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a reference to the #GVolumeMonitor used by gio. Call
- g_object_unref() when done with it.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </return-value>
- </function>
- <virtual-method name="drive_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="drive_connected">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="drive_disconnected">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="drive_eject_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="drive_stop_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_connected_drives"
- invoker="get_connected_drives">
- <doc xml:space="preserve">Gets a list of drives connected to the system.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of connected #GDrive objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Drive"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_mount_for_uuid" invoker="get_mount_for_uuid">
- <doc xml:space="preserve">Finds a #GMount object by its UUID (see g_mount_get_uuid())</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount or %NULL if no such mount is available.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="uuid" transfer-ownership="none">
- <doc xml:space="preserve">the UUID to look for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_mounts" invoker="get_mounts">
- <doc xml:space="preserve">Gets a list of the mounts on the system.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GMount objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Mount"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_volume_for_uuid" invoker="get_volume_for_uuid">
- <doc xml:space="preserve">Finds a #GVolume object by its UUID (see g_volume_get_uuid())</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVolume or %NULL if no such volume is available.
- Free the returned object with g_object_unref().</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="uuid" transfer-ownership="none">
- <doc xml:space="preserve">the UUID to look for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_volumes" invoker="get_volumes">
- <doc xml:space="preserve">Gets a list of the volumes on the system.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GVolume objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Volume"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_pre_unmount">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="mount_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="volume_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="volume_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="volume_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_connected_drives"
- c:identifier="g_volume_monitor_get_connected_drives">
- <doc xml:space="preserve">Gets a list of drives connected to the system.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of connected #GDrive objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Drive"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_mount_for_uuid"
- c:identifier="g_volume_monitor_get_mount_for_uuid">
- <doc xml:space="preserve">Finds a #GMount object by its UUID (see g_mount_get_uuid())</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount or %NULL if no such mount is available.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="uuid" transfer-ownership="none">
- <doc xml:space="preserve">the UUID to look for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_mounts" c:identifier="g_volume_monitor_get_mounts">
- <doc xml:space="preserve">Gets a list of the mounts on the system.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GMount objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Mount"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_volume_for_uuid"
- c:identifier="g_volume_monitor_get_volume_for_uuid">
- <doc xml:space="preserve">Finds a #GVolume object by its UUID (see g_volume_get_uuid())</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVolume or %NULL if no such volume is available.
- Free the returned object with g_object_unref().</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- <parameter name="uuid" transfer-ownership="none">
- <doc xml:space="preserve">the UUID to look for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_volumes" c:identifier="g_volume_monitor_get_volumes">
- <doc xml:space="preserve">Gets a list of the volumes on the system.
- The returned list should be freed with g_list_free(), after
- its elements have been unreffed with g_object_unref().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GVolume objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Volume"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <field name="parent_instance">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <glib:signal name="drive-changed" when="last">
- <doc xml:space="preserve">Emitted when a drive changes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">the drive that changed</doc>
- <type name="Drive"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="drive-connected" when="last">
- <doc xml:space="preserve">Emitted when a drive is connected to the system.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive that was connected.</doc>
- <type name="Drive"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="drive-disconnected" when="last">
- <doc xml:space="preserve">Emitted when a drive is disconnected from the system.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">a #GDrive that was disconnected.</doc>
- <type name="Drive"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="drive-eject-button" when="last" version="2.18">
- <doc xml:space="preserve">Emitted when the eject button is pressed on @drive.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">the drive where the eject button was pressed</doc>
- <type name="Drive"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="drive-stop-button" when="last" version="2.22">
- <doc xml:space="preserve">Emitted when the stop button is pressed on @drive.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="drive" transfer-ownership="none">
- <doc xml:space="preserve">the drive where the stop button was pressed</doc>
- <type name="Drive"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="mount-added" when="last">
- <doc xml:space="preserve">Emitted when a mount is added.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount that was added.</doc>
- <type name="Mount"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="mount-changed" when="last">
- <doc xml:space="preserve">Emitted when a mount changes.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount that changed.</doc>
- <type name="Mount"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="mount-pre-unmount" when="last">
- <doc xml:space="preserve">Emitted when a mount is about to be removed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount that is being unmounted.</doc>
- <type name="Mount"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="mount-removed" when="last">
- <doc xml:space="preserve">Emitted when a mount is removed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <doc xml:space="preserve">a #GMount that was removed.</doc>
- <type name="Mount"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="volume-added" when="last">
- <doc xml:space="preserve">Emitted when a mountable volume is added to the system.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume that was added.</doc>
- <type name="Volume"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="volume-changed" when="last">
- <doc xml:space="preserve">Emitted when mountable volume is changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume that changed.</doc>
- <type name="Volume"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="volume-removed" when="last">
- <doc xml:space="preserve">Emitted when a mountable volume is removed from the system.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolume that was removed.</doc>
- <type name="Volume"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="VolumeMonitorClass"
- c:type="GVolumeMonitorClass"
- glib:is-gtype-struct-for="VolumeMonitor">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="volume_added">
- <callback name="volume_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="volume_removed">
- <callback name="volume_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="volume_changed">
- <callback name="volume_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="volume" transfer-ownership="none">
- <type name="Volume" c:type="GVolume*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_added">
- <callback name="mount_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_removed">
- <callback name="mount_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_pre_unmount">
- <callback name="mount_pre_unmount">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="mount_changed">
- <callback name="mount_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="drive_connected">
- <callback name="drive_connected">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="drive_disconnected">
- <callback name="drive_disconnected">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="drive_changed">
- <callback name="drive_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="is_supported">
- <callback name="is_supported">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- </callback>
- </field>
- <field name="get_connected_drives">
- <callback name="get_connected_drives">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of connected #GDrive objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Drive"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_volumes">
- <callback name="get_volumes">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GVolume objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Volume"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_mounts">
- <callback name="get_mounts">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GList of #GMount objects.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Mount"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_volume_for_uuid">
- <callback name="get_volume_for_uuid">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GVolume or %NULL if no such volume is available.
- Free the returned object with g_object_unref().</doc>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="uuid" transfer-ownership="none">
- <doc xml:space="preserve">the UUID to look for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_mount_for_uuid">
- <callback name="get_mount_for_uuid">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GMount or %NULL if no such mount is available.
- Free the returned object with g_object_unref().</doc>
- <type name="Mount" c:type="GMount*"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <doc xml:space="preserve">a #GVolumeMonitor.</doc>
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="uuid" transfer-ownership="none">
- <doc xml:space="preserve">the UUID to look for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="adopt_orphan_mount" introspectable="0">
- <callback name="adopt_orphan_mount" introspectable="0">
- <return-value>
- <type name="Volume" c:type="GVolume*"/>
- </return-value>
- <parameters>
- <parameter name="mount" transfer-ownership="none">
- <type name="Mount" c:type="GMount*"/>
- </parameter>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="drive_eject_button">
- <callback name="drive_eject_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="drive_stop_button">
- <callback name="drive_stop_button">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="volume_monitor" transfer-ownership="none">
- <type name="VolumeMonitor" c:type="GVolumeMonitor*"/>
- </parameter>
- <parameter name="drive" transfer-ownership="none">
- <type name="Drive" c:type="GDrive*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_g_reserved1" introspectable="0">
- <callback name="_g_reserved1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved2" introspectable="0">
- <callback name="_g_reserved2">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved3" introspectable="0">
- <callback name="_g_reserved3">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved4" introspectable="0">
- <callback name="_g_reserved4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved5" introspectable="0">
- <callback name="_g_reserved5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- <field name="_g_reserved6" introspectable="0">
- <callback name="_g_reserved6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- </field>
- </record>
- <class name="ZlibCompressor"
- c:symbol-prefix="zlib_compressor"
- c:type="GZlibCompressor"
- parent="GObject.Object"
- glib:type-name="GZlibCompressor"
- glib:get-type="g_zlib_compressor_get_type"
- glib:type-struct="ZlibCompressorClass">
- <doc xml:space="preserve">Zlib decompression</doc>
- <implements name="Converter"/>
- <constructor name="new"
- c:identifier="g_zlib_compressor_new"
- version="2.24">
- <doc xml:space="preserve">Creates a new #GZlibCompressor.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GZlibCompressor</doc>
- <type name="ZlibCompressor" c:type="GZlibCompressor*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format to use for the compressed data</doc>
- <type name="ZlibCompressorFormat" c:type="GZlibCompressorFormat"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <doc xml:space="preserve">compression level (0-9), -1 for default</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_file_info"
- c:identifier="g_zlib_compressor_get_file_info"
- version="2.26">
- <doc xml:space="preserve">Returns the #GZlibCompressor:file-info property.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo, or %NULL</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="compressor" transfer-ownership="none">
- <doc xml:space="preserve">a #GZlibCompressor</doc>
- <type name="ZlibCompressor" c:type="GZlibCompressor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_file_info"
- c:identifier="g_zlib_compressor_set_file_info"
- version="2.26">
- <doc xml:space="preserve">Sets @file_info in @compressor. If non-%NULL, and @compressor's
- #GZlibCompressor:format property is %G_ZLIB_COMPRESSOR_FORMAT_GZIP,
- it will be used to set the file name and modification time in
- the GZIP header of the compressed data.
- Note: it is an error to call this function while a compression is in
- progress; it may only be called immediately after creation of @compressor,
- or after resetting it with g_converter_reset().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="compressor" transfer-ownership="none">
- <doc xml:space="preserve">a #GZlibCompressor</doc>
- <type name="ZlibCompressor" c:type="GZlibCompressor*"/>
- </instance-parameter>
- <parameter name="file_info"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GFileInfo</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </parameter>
- </parameters>
- </method>
- <property name="file-info"
- version="2.26"
- writable="1"
- transfer-ownership="none">
- <doc xml:space="preserve">If set to a non-%NULL #GFileInfo object, and #GZlibCompressor:format is
- %G_ZLIB_COMPRESSOR_FORMAT_GZIP, the compressor will write the file name
- and modification time from the file info to the GZIP header.</doc>
- <type name="FileInfo"/>
- </property>
- <property name="format"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="ZlibCompressorFormat"/>
- </property>
- <property name="level"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </property>
- </class>
- <record name="ZlibCompressorClass"
- c:type="GZlibCompressorClass"
- glib:is-gtype-struct-for="ZlibCompressor">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <enumeration name="ZlibCompressorFormat"
- version="2.24"
- glib:type-name="GZlibCompressorFormat"
- glib:get-type="g_zlib_compressor_format_get_type"
- c:type="GZlibCompressorFormat">
- <doc xml:space="preserve">Used to select the type of data format to use for #GZlibDecompressor
- and #GZlibCompressor.</doc>
- <member name="zlib"
- value="0"
- c:identifier="G_ZLIB_COMPRESSOR_FORMAT_ZLIB"
- glib:nick="zlib">
- <doc xml:space="preserve">deflate compression with zlib header</doc>
- </member>
- <member name="gzip"
- value="1"
- c:identifier="G_ZLIB_COMPRESSOR_FORMAT_GZIP"
- glib:nick="gzip">
- <doc xml:space="preserve">gzip file format</doc>
- </member>
- <member name="raw"
- value="2"
- c:identifier="G_ZLIB_COMPRESSOR_FORMAT_RAW"
- glib:nick="raw">
- <doc xml:space="preserve">deflate compression with no header</doc>
- </member>
- </enumeration>
- <class name="ZlibDecompressor"
- c:symbol-prefix="zlib_decompressor"
- c:type="GZlibDecompressor"
- parent="GObject.Object"
- glib:type-name="GZlibDecompressor"
- glib:get-type="g_zlib_decompressor_get_type"
- glib:type-struct="ZlibDecompressorClass">
- <doc xml:space="preserve">Zlib decompression</doc>
- <implements name="Converter"/>
- <constructor name="new"
- c:identifier="g_zlib_decompressor_new"
- version="2.24">
- <doc xml:space="preserve">Creates a new #GZlibDecompressor.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GZlibDecompressor</doc>
- <type name="ZlibDecompressor" c:type="GZlibDecompressor*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The format to use for the compressed data</doc>
- <type name="ZlibCompressorFormat" c:type="GZlibCompressorFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_file_info"
- c:identifier="g_zlib_decompressor_get_file_info"
- version="2.26">
- <doc xml:space="preserve">Retrieves the #GFileInfo constructed from the GZIP header data
- of compressed data processed by @compressor, or %NULL if @decompressor's
- #GZlibDecompressor:format property is not %G_ZLIB_COMPRESSOR_FORMAT_GZIP,
- or the header data was not fully processed yet, or it not present in the
- data stream at all.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GFileInfo, or %NULL</doc>
- <type name="FileInfo" c:type="GFileInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decompressor" transfer-ownership="none">
- <doc xml:space="preserve">a #GZlibDecompressor</doc>
- <type name="ZlibDecompressor" c:type="GZlibDecompressor*"/>
- </instance-parameter>
- </parameters>
- </method>
- <property name="file-info" version="2.26" transfer-ownership="none">
- <doc xml:space="preserve">A #GFileInfo containing the information found in the GZIP header
- of the data stream processed, or %NULL if the header was not yet
- fully processed, is not present at all, or the compressor's
- #GZlibDecompressor:format property is not %G_ZLIB_COMPRESSOR_FORMAT_GZIP.</doc>
- <type name="FileInfo"/>
- </property>
- <property name="format"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <type name="ZlibCompressorFormat"/>
- </property>
- </class>
- <record name="ZlibDecompressorClass"
- c:type="GZlibDecompressorClass"
- glib:is-gtype-struct-for="ZlibDecompressor">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- </record>
- <function name="action_name_is_valid"
- c:identifier="g_action_name_is_valid"
- moved-to="Action.name_is_valid"
- version="2.38">
- <doc xml:space="preserve">Checks if @action_name is valid.
- @action_name is valid if it consists only of alphanumeric characters,
- plus '-' and '.'. The empty string is not a valid action name.
- It is an error to call this function with a non-utf8 @action_name.
- @action_name must not be %NULL.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @action_name is valid</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">an potential action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="action_parse_detailed_name"
- c:identifier="g_action_parse_detailed_name"
- moved-to="Action.parse_detailed_name"
- version="2.38"
- throws="1">
- <doc xml:space="preserve">Parses a detailed action name into its separate name and target
- components.
- Detailed action names can have three formats.
- The first format is used to represent an action name with no target
- value and consists of just an action name containing no whitespace
- nor the characters ':', '(' or ')'. For example: "app.action".
- The second format is used to represent an action with a target value
- that is a non-empty string consisting only of alphanumerics, plus '-'
- and '.'. In that case, the action name and target value are
- separated by a double colon ("::"). For example:
- "app.action::target".
- The third format is used to represent an action with any type of
- target value, including strings. The target value follows the action
- name, surrounded in parens. For example: "app.action(42)". The
- target value is parsed using g_variant_parse(). If a tuple-typed
- value is desired, it must be specified in the same way, resulting in
- two sets of parens, for example: "app.action((1,2,3))". A string
- target can be specified this way as well: "app.action('target')".
- For strings, this third format must be used if * target value is
- empty or contains characters other than alphanumerics, '-' and '.'.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if successful, else %FALSE with @error set</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="detailed_name" transfer-ownership="none">
- <doc xml:space="preserve">a detailed action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="action_name"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the action name</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- <parameter name="target_value"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the target value, or %NULL for no target</doc>
- <type name="GLib.Variant" c:type="GVariant**"/>
- </parameter>
- </parameters>
- </function>
- <function name="action_print_detailed_name"
- c:identifier="g_action_print_detailed_name"
- moved-to="Action.print_detailed_name"
- version="2.38">
- <doc xml:space="preserve">Formats a detailed action name from @action_name and @target_value.
- It is an error to call this function with an invalid action name.
- This function is the opposite of
- g_action_parse_detailed_action_name(). It will produce a string that
- can be parsed back to the @action_name and @target_value by that
- function.
- See that function for the types of strings that will be printed by
- this function.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a detailed format string</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="action_name" transfer-ownership="none">
- <doc xml:space="preserve">a valid action name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="target_value"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GVariant target value, or %NULL</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_create_from_commandline"
- c:identifier="g_app_info_create_from_commandline"
- moved-to="AppInfo.create_from_commandline"
- throws="1">
- <doc xml:space="preserve">Creates a new #GAppInfo from the given information.
- Note that for @commandline, the quoting rules of the Exec key of the
- [freedesktop.org Desktop Entry Specification](http://freedesktop.org/Standards/desktop-entry-spec)
- are applied. For example, if the @commandline contains
- percent-encoded URIs, the percent-character must be doubled in order to prevent it from
- being swallowed by Exec key unquoting. See the specification for exact quoting rules.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">new #GAppInfo for given command.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="commandline" transfer-ownership="none">
- <doc xml:space="preserve">the commandline to use</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="application_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the application name, or %NULL to use @commandline</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags that can specify details of the created #GAppInfo</doc>
- <type name="AppInfoCreateFlags" c:type="GAppInfoCreateFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_get_all"
- c:identifier="g_app_info_get_all"
- moved-to="AppInfo.get_all">
- <doc xml:space="preserve">Gets a list of all of the applications currently registered
- on this system.
- For desktop files, this includes applications that have
- `NoDisplay=true` set or are excluded from display by means
- of `OnlyShowIn` or `NotShowIn`. See g_app_info_should_show().
- The returned list does not include applications which have
- the `Hidden` key set.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated #GList of references to #GAppInfos.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- </function>
- <function name="app_info_get_all_for_type"
- c:identifier="g_app_info_get_all_for_type"
- moved-to="AppInfo.get_all_for_type">
- <doc xml:space="preserve">Gets a list of all #GAppInfos for a given content type,
- including the recommended and fallback #GAppInfos. See
- g_app_info_get_recommended_for_type() and
- g_app_info_get_fallback_for_type().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList of #GAppInfos
- for given @content_type or %NULL on error.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_get_default_for_type"
- c:identifier="g_app_info_get_default_for_type"
- moved-to="AppInfo.get_default_for_type">
- <doc xml:space="preserve">Gets the default #GAppInfo for a given content type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @content_type or
- %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="must_support_uris" transfer-ownership="none">
- <doc xml:space="preserve">if %TRUE, the #GAppInfo is expected to
- support URIs</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_get_default_for_uri_scheme"
- c:identifier="g_app_info_get_default_for_uri_scheme"
- moved-to="AppInfo.get_default_for_uri_scheme">
- <doc xml:space="preserve">Gets the default application for handling URIs with
- the given URI scheme. A URI scheme is the initial part
- of the URI, up to but not including the ':', e.g. "http",
- "ftp" or "sip".</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GAppInfo for given @uri_scheme or %NULL on error.</doc>
- <type name="AppInfo" c:type="GAppInfo*"/>
- </return-value>
- <parameters>
- <parameter name="uri_scheme" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a URI scheme.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_get_fallback_for_type"
- c:identifier="g_app_info_get_fallback_for_type"
- moved-to="AppInfo.get_fallback_for_type"
- version="2.28">
- <doc xml:space="preserve">Gets a list of fallback #GAppInfos for a given content type, i.e.
- those applications which claim to support the given content type
- by MIME type subclassing and not directly.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList of #GAppInfos
- for given @content_type or %NULL on error.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_get_recommended_for_type"
- c:identifier="g_app_info_get_recommended_for_type"
- moved-to="AppInfo.get_recommended_for_type"
- version="2.28">
- <doc xml:space="preserve">Gets a list of recommended #GAppInfos for a given content type, i.e.
- those applications which claim to support the given content type exactly,
- and not by MIME type subclassing.
- Note that the first application of the list is the last used one, i.e.
- the last one for which g_app_info_set_as_last_used_for_type() has been
- called.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GList of #GAppInfos
- for given @content_type or %NULL on error.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="AppInfo"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">the content type to find a #GAppInfo for</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_launch_default_for_uri"
- c:identifier="g_app_info_launch_default_for_uri"
- moved-to="AppInfo.launch_default_for_uri"
- throws="1">
- <doc xml:space="preserve">Utility function that launches the default application
- registered to handle the specified uri. Synchronous I/O
- is done on the uri to detect the type of the file if
- required.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE on error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">the uri to show</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="launch_context"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">an optional #GAppLaunchContext.</doc>
- <type name="AppLaunchContext" c:type="GAppLaunchContext*"/>
- </parameter>
- </parameters>
- </function>
- <function name="app_info_reset_type_associations"
- c:identifier="g_app_info_reset_type_associations"
- moved-to="AppInfo.reset_type_associations"
- version="2.20">
- <doc xml:space="preserve">Removes all changes to the type associations done by
- g_app_info_set_as_default_for_type(),
- g_app_info_set_as_default_for_extension(),
- g_app_info_add_supports_type() or
- g_app_info_remove_supports_type().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="content_type" transfer-ownership="none">
- <doc xml:space="preserve">a content type</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="async_initable_newv_async"
- c:identifier="g_async_initable_newv_async"
- moved-to="AsyncInitable.newv_async"
- version="2.22">
- <doc xml:space="preserve">Helper function for constructing #GAsyncInitable object. This is
- similar to g_object_newv() but also initializes the object asynchronously.
- When the initialization is finished, @callback will be called. You can
- then call g_async_initable_new_finish() to get the new object and check
- for any errors.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GAsyncInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="n_parameters" transfer-ownership="none">
- <doc xml:space="preserve">the number of parameters in @parameters</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">the parameters to use to construct the object</doc>
- <type name="GObject.Parameter" c:type="GParameter*"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority] of the operation</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="6">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the initialization is
- finished</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_get" c:identifier="g_bus_get" version="2.26">
- <doc xml:space="preserve">Asynchronously connects to the message bus specified by @bus_type.
- When the operation is finished, @callback will be invoked. You can
- then call g_bus_get_finish() to get the result of the operation.
- This is a asynchronous failable function. See g_bus_get_sync() for
- the synchronous version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GBusType</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data to pass to @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_get_finish"
- c:identifier="g_bus_get_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_bus_get().
- The returned object is a singleton, that is, shared with other
- callers of g_bus_get() and g_bus_get_sync() for @bus_type. In the
- event that you need a private message bus connection, use
- g_dbus_address_get_for_bus_sync() and
- g_dbus_connection_new_for_address().
- Note that the returned #GDBusConnection object will (usually) have
- the #GDBusConnection:exit-on-close property set to %TRUE.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusConnection or %NULL if @error is set.
- Free with g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- to g_bus_get()</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_get_sync"
- c:identifier="g_bus_get_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously connects to the message bus specified by @bus_type.
- Note that the returned object may shared with other callers,
- e.g. if two separate parts of a process calls this function with
- the same @bus_type, they will share the same object.
- This is a synchronous failable function. See g_bus_get() and
- g_bus_get_finish() for the asynchronous version.
- The returned object is a singleton, that is, shared with other
- callers of g_bus_get() and g_bus_get_sync() for @bus_type. In the
- event that you need a private message bus connection, use
- g_dbus_address_get_for_bus_sync() and
- g_dbus_connection_new_for_address().
- Note that the returned #GDBusConnection object will (usually) have
- the #GDBusConnection:exit-on-close property set to %TRUE.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GDBusConnection or %NULL if @error is set.
- Free with g_object_unref().</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GBusType</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_own_name"
- c:identifier="g_bus_own_name"
- shadowed-by="bus_own_name_with_closures"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Starts acquiring @name on the bus specified by @bus_type and calls
- @name_acquired_handler and @name_lost_handler when the name is
- acquired respectively lost. Callbacks will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this function from.
- You are guaranteed that one of the @name_acquired_handler and @name_lost_handler
- callbacks will be invoked after calling this function - there are three
- possible cases:
- - @name_lost_handler with a %NULL connection (if a connection to the bus
- can't be made).
- - @bus_acquired_handler then @name_lost_handler (if the name can't be
- obtained)
- - @bus_acquired_handler then @name_acquired_handler (if the name was
- obtained).
- When you are done owning the name, just call g_bus_unown_name()
- with the owner id this function returns.
- If the name is acquired or lost (for example another application
- could acquire the name if you allow replacement or the application
- currently owning the name exits), the handlers are also invoked.
- If the #GDBusConnection that is used for attempting to own the name
- closes, then @name_lost_handler is invoked since it is no longer
- possible for other processes to access the process.
- You cannot use g_bus_own_name() several times for the same name (unless
- interleaved with calls to g_bus_unown_name()) - only the first call
- will work.
- Another guarantee is that invocations of @name_acquired_handler
- and @name_lost_handler are guaranteed to alternate; that
- is, if @name_acquired_handler is invoked then you are
- guaranteed that the next time one of the handlers is invoked, it
- will be @name_lost_handler. The reverse is also true.
- If you plan on exporting objects (using e.g.
- g_dbus_connection_register_object()), note that it is generally too late
- to export the objects in @name_acquired_handler. Instead, you can do this
- in @bus_acquired_handler since you are guaranteed that this will run
- before @name is requested from the bus.
- This behavior makes it very simple to write applications that wants
- to [own names][gdbus-owning-names] and export objects.
- Simply register objects to be exported in @bus_acquired_handler and
- unregister the objects (if any) in @name_lost_handler.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an identifier (never 0) that an be used with
- g_bus_unown_name() to stop owning the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of bus to own a name on</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the well-known name to own</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of flags from the #GBusNameOwnerFlags enumeration</doc>
- <type name="BusNameOwnerFlags" c:type="GBusNameOwnerFlags"/>
- </parameter>
- <parameter name="bus_acquired_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">handler to invoke when connected to the bus of type @bus_type or %NULL</doc>
- <type name="BusAcquiredCallback" c:type="GBusAcquiredCallback"/>
- </parameter>
- <parameter name="name_acquired_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">handler to invoke when @name is acquired or %NULL</doc>
- <type name="BusNameAcquiredCallback"
- c:type="GBusNameAcquiredCallback"/>
- </parameter>
- <parameter name="name_lost_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="6"
- destroy="7">
- <doc xml:space="preserve">handler to invoke when @name is lost or %NULL</doc>
- <type name="BusNameLostCallback" c:type="GBusNameLostCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to handlers</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">function for freeing @user_data or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_own_name_on_connection"
- c:identifier="g_bus_own_name_on_connection"
- shadowed-by="bus_own_name_on_connection_with_closures"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Like g_bus_own_name() but takes a #GDBusConnection instead of a
- #GBusType.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an identifier (never 0) that an be used with
- g_bus_unown_name() to stop owning the name</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the well-known name to own</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of flags from the #GBusNameOwnerFlags enumeration</doc>
- <type name="BusNameOwnerFlags" c:type="GBusNameOwnerFlags"/>
- </parameter>
- <parameter name="name_acquired_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">handler to invoke when @name is acquired or %NULL</doc>
- <type name="BusNameAcquiredCallback"
- c:type="GBusNameAcquiredCallback"/>
- </parameter>
- <parameter name="name_lost_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">handler to invoke when @name is lost or %NULL</doc>
- <type name="BusNameLostCallback" c:type="GBusNameLostCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data to pass to handlers</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">function for freeing @user_data or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_own_name_on_connection_with_closures"
- c:identifier="g_bus_own_name_on_connection_with_closures"
- shadows="bus_own_name_on_connection"
- version="2.26">
- <doc xml:space="preserve">Version of g_bus_own_name_on_connection() using closures instead of
- callbacks for easier binding in other languages.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an identifier (never 0) that an be used with
- g_bus_unown_name() to stop owning the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">a #GDBusConnection</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the well-known name to own</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of flags from the #GBusNameOwnerFlags enumeration</doc>
- <type name="BusNameOwnerFlags" c:type="GBusNameOwnerFlags"/>
- </parameter>
- <parameter name="name_acquired_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is
- acquired or %NULL</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="name_lost_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is lost
- or %NULL</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_own_name_with_closures"
- c:identifier="g_bus_own_name_with_closures"
- shadows="bus_own_name"
- version="2.26">
- <doc xml:space="preserve">Version of g_bus_own_name() using closures instead of callbacks for
- easier binding in other languages.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an identifier (never 0) that an be used with
- g_bus_unown_name() to stop owning the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">the type of bus to own a name on</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the well-known name to own</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a set of flags from the #GBusNameOwnerFlags enumeration</doc>
- <type name="BusNameOwnerFlags" c:type="GBusNameOwnerFlags"/>
- </parameter>
- <parameter name="bus_acquired_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when connected to
- the bus of type @bus_type or %NULL</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="name_acquired_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is
- acquired or %NULL</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="name_lost_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is lost or
- %NULL</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_unown_name"
- c:identifier="g_bus_unown_name"
- version="2.26">
- <doc xml:space="preserve">Stops owning a name.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="owner_id" transfer-ownership="none">
- <doc xml:space="preserve">an identifier obtained from g_bus_own_name()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_unwatch_name"
- c:identifier="g_bus_unwatch_name"
- version="2.26">
- <doc xml:space="preserve">Stops watching a name.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="watcher_id" transfer-ownership="none">
- <doc xml:space="preserve">An identifier obtained from g_bus_watch_name()</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_watch_name"
- c:identifier="g_bus_watch_name"
- shadowed-by="bus_watch_name_with_closures"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Starts watching @name on the bus specified by @bus_type and calls
- @name_appeared_handler and @name_vanished_handler when the name is
- known to have a owner respectively known to lose its
- owner. Callbacks will be invoked in the
- [thread-default main context][g-main-context-push-thread-default]
- of the thread you are calling this function from.
- You are guaranteed that one of the handlers will be invoked after
- calling this function. When you are done watching the name, just
- call g_bus_unwatch_name() with the watcher id this function
- returns.
- If the name vanishes or appears (for example the application owning
- the name could restart), the handlers are also invoked. If the
- #GDBusConnection that is used for watching the name disconnects, then
- @name_vanished_handler is invoked since it is no longer
- possible to access the name.
- Another guarantee is that invocations of @name_appeared_handler
- and @name_vanished_handler are guaranteed to alternate; that
- is, if @name_appeared_handler is invoked then you are
- guaranteed that the next time one of the handlers is invoked, it
- will be @name_vanished_handler. The reverse is also true.
- This behavior makes it very simple to write applications that want
- to take action when a certain [name exists][gdbus-watching-names].
- Basically, the application should create object proxies in
- @name_appeared_handler and destroy them again (if any) in
- @name_vanished_handler.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An identifier (never 0) that an be used with
- g_bus_unwatch_name() to stop watching the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">The type of bus to watch a name on.</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name (well-known or unique) to watch.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GBusNameWatcherFlags enumeration.</doc>
- <type name="BusNameWatcherFlags" c:type="GBusNameWatcherFlags"/>
- </parameter>
- <parameter name="name_appeared_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Handler to invoke when @name is known to exist or %NULL.</doc>
- <type name="BusNameAppearedCallback"
- c:type="GBusNameAppearedCallback"/>
- </parameter>
- <parameter name="name_vanished_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">Handler to invoke when @name is known to not exist or %NULL.</doc>
- <type name="BusNameVanishedCallback"
- c:type="GBusNameVanishedCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to handlers.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Function for freeing @user_data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_watch_name_on_connection"
- c:identifier="g_bus_watch_name_on_connection"
- shadowed-by="bus_watch_name_on_connection_with_closures"
- version="2.26"
- introspectable="0">
- <doc xml:space="preserve">Like g_bus_watch_name() but takes a #GDBusConnection instead of a
- #GBusType.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An identifier (never 0) that an be used with
- g_bus_unwatch_name() to stop watching the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name (well-known or unique) to watch.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GBusNameWatcherFlags enumeration.</doc>
- <type name="BusNameWatcherFlags" c:type="GBusNameWatcherFlags"/>
- </parameter>
- <parameter name="name_appeared_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Handler to invoke when @name is known to exist or %NULL.</doc>
- <type name="BusNameAppearedCallback"
- c:type="GBusNameAppearedCallback"/>
- </parameter>
- <parameter name="name_vanished_handler"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="notified"
- closure="5"
- destroy="6">
- <doc xml:space="preserve">Handler to invoke when @name is known to not exist or %NULL.</doc>
- <type name="BusNameVanishedCallback"
- c:type="GBusNameVanishedCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">User data to pass to handlers.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_free_func"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">Function for freeing @user_data or %NULL.</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_watch_name_on_connection_with_closures"
- c:identifier="g_bus_watch_name_on_connection_with_closures"
- shadows="bus_watch_name_on_connection"
- version="2.26">
- <doc xml:space="preserve">Version of g_bus_watch_name_on_connection() using closures instead of callbacks for
- easier binding in other languages.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An identifier (never 0) that an be used with
- g_bus_unwatch_name() to stop watching the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="connection" transfer-ownership="none">
- <doc xml:space="preserve">A #GDBusConnection.</doc>
- <type name="DBusConnection" c:type="GDBusConnection*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name (well-known or unique) to watch.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GBusNameWatcherFlags enumeration.</doc>
- <type name="BusNameWatcherFlags" c:type="GBusNameWatcherFlags"/>
- </parameter>
- <parameter name="name_appeared_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is known
- to exist or %NULL.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="name_vanished_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is known
- to not exist or %NULL.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="bus_watch_name_with_closures"
- c:identifier="g_bus_watch_name_with_closures"
- shadows="bus_watch_name"
- version="2.26">
- <doc xml:space="preserve">Version of g_bus_watch_name() using closures instead of callbacks for
- easier binding in other languages.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">An identifier (never 0) that an be used with
- g_bus_unwatch_name() to stop watching the name.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">The type of bus to watch a name on.</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name (well-known or unique) to watch.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">Flags from the #GBusNameWatcherFlags enumeration.</doc>
- <type name="BusNameWatcherFlags" c:type="GBusNameWatcherFlags"/>
- </parameter>
- <parameter name="name_appeared_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is known
- to exist or %NULL.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- <parameter name="name_vanished_closure"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GClosure to invoke when @name is known
- to not exist or %NULL.</doc>
- <type name="GObject.Closure" c:type="GClosure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_can_be_executable"
- c:identifier="g_content_type_can_be_executable">
- <doc xml:space="preserve">Checks if a content type can be executable. Note that for instance
- things like text files can be executables (i.e. scripts and batch files).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file type corresponds to a type that
- can be executable, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_equals" c:identifier="g_content_type_equals">
- <doc xml:space="preserve">Compares two content types for equality.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the two strings are identical or equivalent,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type1" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="type2" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_from_mime_type"
- c:identifier="g_content_type_from_mime_type"
- version="2.18">
- <doc xml:space="preserve">Tries to find a content type based on the mime type name.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">Newly allocated string with content type or
- %NULL. Free with g_free()</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mime_type" transfer-ownership="none">
- <doc xml:space="preserve">a mime type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_get_description"
- c:identifier="g_content_type_get_description">
- <doc xml:space="preserve">Gets the human readable description of the content type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a short description of the content type @type. Free the
- returned string with g_free()</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_get_generic_icon_name"
- c:identifier="g_content_type_get_generic_icon_name"
- version="2.34">
- <doc xml:space="preserve">Gets the generic icon name for a content type.
- See the
- [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- specification for more on the generic icon name.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the registered generic icon name for the given @type,
- or %NULL if unknown. Free with g_free()</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_get_icon"
- c:identifier="g_content_type_get_icon">
- <doc xml:space="preserve">Gets the icon for a content type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GIcon corresponding to the content type. Free the returned
- object with g_object_unref()</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_get_mime_type"
- c:identifier="g_content_type_get_mime_type">
- <doc xml:space="preserve">Gets the mime type for the content type, if one is registered.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">the registered mime type for the given @type,
- or %NULL if unknown.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_get_symbolic_icon"
- c:identifier="g_content_type_get_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Gets the symbolic icon for a content type.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">symbolic #GIcon corresponding to the content type.
- Free the returned object with g_object_unref()</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_guess" c:identifier="g_content_type_guess">
- <doc xml:space="preserve">Guesses the content type based on example data. If the function is
- uncertain, @result_uncertain will be set to %TRUE. Either @filename
- or @data may be %NULL, in which case the guess will be based solely
- on the other argument.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string indicating a guessed content type for the
- given data. Free with g_free()</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="filename"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a string, or %NULL</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a stream of data, or %NULL</doc>
- <array length="2" zero-terminated="0" c:type="guchar*">
- <type name="guint8" c:type="guchar"/>
- </array>
- </parameter>
- <parameter name="data_size" transfer-ownership="none">
- <doc xml:space="preserve">the size of @data</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="result_uncertain"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">return location for the certainty
- of the result, or %NULL</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_guess_for_tree"
- c:identifier="g_content_type_guess_for_tree"
- version="2.18">
- <doc xml:space="preserve">Tries to guess the type of the tree with root @root, by
- looking at the files it contains. The result is an array
- of content types, with the best guess coming first.
- The types returned all have the form x-content/foo, e.g.
- x-content/audio-cdda (for audio CDs) or x-content/image-dcf
- (for a camera memory card). See the
- [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- specification for more on x-content types.
- This function is useful in the implementation of
- g_mount_guess_content_type().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an %NULL-terminated
- array of zero or more content types. Free with g_strfreev()</doc>
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="root" transfer-ownership="none">
- <doc xml:space="preserve">the root of the tree to guess a type for</doc>
- <type name="File" c:type="GFile*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_is_a" c:identifier="g_content_type_is_a">
- <doc xml:space="preserve">Determines if @type is a subset of @supertype.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @type is a kind of @supertype,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="supertype" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_type_is_unknown"
- c:identifier="g_content_type_is_unknown">
- <doc xml:space="preserve">Checks if the content type is the generic "unknown" type.
- On UNIX this is the "application/octet-stream" mimetype,
- while on win32 it is "*".</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the type is the unknown type.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">a content type string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="content_types_get_registered"
- c:identifier="g_content_types_get_registered">
- <doc xml:space="preserve">Gets a list of strings containing all the registered content types
- known to the system. The list and its data should be freed using
- g_list_free_full (list, g_free).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">list of the registered
- content types</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="utf8"/>
- </type>
- </return-value>
- </function>
- <function name="dbus_address_escape_value"
- c:identifier="g_dbus_address_escape_value"
- version="2.36">
- <doc xml:space="preserve">Escape @string so it can appear in a D-Bus address as the value
- part of a key-value pair.
- For instance, if @string is "/run/bus-for-:0",
- this function would return "/run/bus-for-%3A0",
- which could be used in a D-Bus address like
- "unix:nonce-tcp:host=127.0.0.1,port=42,noncefile=/run/bus-for-%3A0".</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a copy of @string with all
- non-optionally-escaped bytes escaped</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">an unescaped string to be included in a D-Bus address
- as the value in a key-value pair</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_address_get_for_bus_sync"
- c:identifier="g_dbus_address_get_for_bus_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously looks up the D-Bus address for the well-known message
- bus instance specified by @bus_type. This may involve using various
- platform specific mechanisms.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a valid D-Bus address string for @bus_type or %NULL if
- @error is set</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="bus_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GBusType</doc>
- <type name="BusType" c:type="GBusType"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GCancellable or %NULL</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_address_get_stream"
- c:identifier="g_dbus_address_get_stream"
- version="2.26">
- <doc xml:space="preserve">Asynchronously connects to an endpoint specified by @address and
- sets up the connection so it is in a state to run the client-side
- of the D-Bus authentication conversation.
- When the operation is finished, @callback will be invoked. You can
- then call g_dbus_address_get_stream_finish() to get the result of
- the operation.
- This is an asynchronous failable function. See
- g_dbus_address_get_stream_sync() for the synchronous version.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus address.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="3">
- <doc xml:space="preserve">A #GAsyncReadyCallback to call when the request is satisfied.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Data to pass to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_address_get_stream_finish"
- c:identifier="g_dbus_address_get_stream_finish"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Finishes an operation started with g_dbus_address_get_stream().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GIOStream or %NULL if @error is set.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="res" transfer-ownership="none">
- <doc xml:space="preserve">A #GAsyncResult obtained from the GAsyncReadyCallback passed to g_dbus_address_get_stream().</doc>
- <type name="AsyncResult" c:type="GAsyncResult*"/>
- </parameter>
- <parameter name="out_guid"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">%NULL or return location to store the GUID extracted from @address, if any.</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_address_get_stream_sync"
- c:identifier="g_dbus_address_get_stream_sync"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Synchronously connects to an endpoint specified by @address and
- sets up the connection so it is in a state to run the client-side
- of the D-Bus authentication conversation.
- This is a synchronous failable function. See
- g_dbus_address_get_stream() for the asynchronous version.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GIOStream or %NULL if @error is set.</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="address" transfer-ownership="none">
- <doc xml:space="preserve">A valid D-Bus address.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="out_guid"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">%NULL or return location to store the GUID extracted from @address, if any.</doc>
- <type name="utf8" c:type="gchar**"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_annotation_info_lookup"
- c:identifier="g_dbus_annotation_info_lookup"
- moved-to="DBusAnnotationInfo.lookup"
- version="2.26">
- <doc xml:space="preserve">Looks up the value of an annotation.
- The cost of this function is O(n) in number of annotations.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The value or %NULL if not found. Do not free, it is owned by @annotations.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="annotations"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">A %NULL-terminated array of annotations or %NULL.</doc>
- <array c:type="GDBusAnnotationInfo**">
- <type name="DBusAnnotationInfo" c:type="GDBusAnnotationInfo*"/>
- </array>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the annotation to look up.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_encode_gerror"
- c:identifier="g_dbus_error_encode_gerror"
- moved-to="DBusError.encode_gerror"
- version="2.26">
- <doc xml:space="preserve">Creates a D-Bus error name to use for @error. If @error matches
- a registered error (cf. g_dbus_error_register_error()), the corresponding
- D-Bus error name will be returned.
- Otherwise the a name of the form
- `org.gtk.GDBus.UnmappedGError.Quark._ESCAPED_QUARK_NAME.Code_ERROR_CODE`
- will be used. This allows other GDBus applications to map the error
- on the wire back to a #GError using g_dbus_error_new_for_dbus_error().
- This function is typically only used in object mappings to put a
- #GError on the wire. Regular applications should not use it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A D-Bus error name (never %NULL). Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_get_remote_error"
- c:identifier="g_dbus_error_get_remote_error"
- moved-to="DBusError.get_remote_error"
- version="2.26">
- <doc xml:space="preserve">Gets the D-Bus error name used for @error, if any.
- This function is guaranteed to return a D-Bus error name for all
- #GErrors returned from functions handling remote method calls
- (e.g. g_dbus_connection_call_finish()) unless
- g_dbus_error_strip_remote_error() has been used on @error.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an allocated string or %NULL if the D-Bus error name
- could not be found. Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">a #GError</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_is_remote_error"
- c:identifier="g_dbus_error_is_remote_error"
- moved-to="DBusError.is_remote_error"
- version="2.26">
- <doc xml:space="preserve">Checks if @error represents an error received via D-Bus from a remote peer. If so,
- use g_dbus_error_get_remote_error() to get the name of the error.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @error represents an error from a remote peer,
- %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_new_for_dbus_error"
- c:identifier="g_dbus_error_new_for_dbus_error"
- moved-to="DBusError.new_for_dbus_error"
- version="2.26">
- <doc xml:space="preserve">Creates a #GError based on the contents of @dbus_error_name and
- @dbus_error_message.
- Errors registered with g_dbus_error_register_error() will be looked
- up using @dbus_error_name and if a match is found, the error domain
- and code is used. Applications can use g_dbus_error_get_remote_error()
- to recover @dbus_error_name.
- If a match against a registered error is not found and the D-Bus
- error name is in a form as returned by g_dbus_error_encode_gerror()
- the error domain and code encoded in the name is used to
- create the #GError. Also, @dbus_error_name is added to the error message
- such that it can be recovered with g_dbus_error_get_remote_error().
- Otherwise, a #GError with the error code %G_IO_ERROR_DBUS_ERROR
- in the #G_IO_ERROR error domain is returned. Also, @dbus_error_name is
- added to the error message such that it can be recovered with
- g_dbus_error_get_remote_error().
- In all three cases, @dbus_error_name can always be recovered from the
- returned #GError using the g_dbus_error_get_remote_error() function
- (unless g_dbus_error_strip_remote_error() hasn't been used on the returned error).
- This function is typically only used in object mappings to prepare
- #GError instances for applications. Regular applications should not use
- it.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">An allocated #GError. Free with g_error_free().</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </return-value>
- <parameters>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="dbus_error_message" transfer-ownership="none">
- <doc xml:space="preserve">D-Bus error message.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_quark"
- c:identifier="g_dbus_error_quark"
- moved-to="DBusError.quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="dbus_error_register_error"
- c:identifier="g_dbus_error_register_error"
- moved-to="DBusError.register_error"
- version="2.26">
- <doc xml:space="preserve">Creates an association to map between @dbus_error_name and
- #GErrors specified by @error_domain and @error_code.
- This is typically done in the routine that returns the #GQuark for
- an error domain.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the association was created, %FALSE if it already
- exists.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error_domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for a error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="error_code" transfer-ownership="none">
- <doc xml:space="preserve">An error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_register_error_domain"
- c:identifier="g_dbus_error_register_error_domain"
- moved-to="DBusError.register_error_domain"
- version="2.26">
- <doc xml:space="preserve">Helper function for associating a #GError error domain with D-Bus error names.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="error_domain_quark_name" transfer-ownership="none">
- <doc xml:space="preserve">The error domain name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="quark_volatile" transfer-ownership="none">
- <doc xml:space="preserve">A pointer where to store the #GQuark.</doc>
- <type name="gsize" c:type="volatile gsize*"/>
- </parameter>
- <parameter name="entries" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to @num_entries #GDBusErrorEntry struct items.</doc>
- <type name="DBusErrorEntry" c:type="const GDBusErrorEntry*"/>
- </parameter>
- <parameter name="num_entries" transfer-ownership="none">
- <doc xml:space="preserve">Number of items to register.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_strip_remote_error"
- c:identifier="g_dbus_error_strip_remote_error"
- moved-to="DBusError.strip_remote_error"
- version="2.26">
- <doc xml:space="preserve">Looks for extra information in the error message used to recover
- the D-Bus error name and strips it if found. If stripped, the
- message field in @error will correspond exactly to what was
- received on the wire.
- This is typically used when presenting errors to the end user.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if information was stripped, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">A #GError.</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_error_unregister_error"
- c:identifier="g_dbus_error_unregister_error"
- moved-to="DBusError.unregister_error"
- version="2.26">
- <doc xml:space="preserve">Destroys an association previously set up with g_dbus_error_register_error().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the association was destroyed, %FALSE if it wasn't found.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="error_domain" transfer-ownership="none">
- <doc xml:space="preserve">A #GQuark for a error domain.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="error_code" transfer-ownership="none">
- <doc xml:space="preserve">An error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dbus_error_name" transfer-ownership="none">
- <doc xml:space="preserve">A D-Bus error name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_generate_guid"
- c:identifier="g_dbus_generate_guid"
- version="2.26">
- <doc xml:space="preserve">Generate a D-Bus GUID that can be used with
- e.g. g_dbus_connection_new().
- See the D-Bus specification regarding what strings are valid D-Bus
- GUID (for example, D-Bus GUIDs are not RFC-4122 compliant).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A valid D-Bus GUID. Free with g_free().</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </function>
- <function name="dbus_gvalue_to_gvariant"
- c:identifier="g_dbus_gvalue_to_gvariant"
- version="2.30">
- <doc xml:space="preserve">Converts a #GValue to a #GVariant of the type indicated by the @type
- parameter.
- The conversion is using the following rules:
- - #G_TYPE_STRING: 's', 'o', 'g' or 'ay'
- - #G_TYPE_STRV: 'as', 'ao' or 'aay'
- - #G_TYPE_BOOLEAN: 'b'
- - #G_TYPE_UCHAR: 'y'
- - #G_TYPE_INT: 'i', 'n'
- - #G_TYPE_UINT: 'u', 'q'
- - #G_TYPE_INT64 'x'
- - #G_TYPE_UINT64: 't'
- - #G_TYPE_DOUBLE: 'd'
- - #G_TYPE_VARIANT: Any #GVariantType
- This can fail if e.g. @gvalue is of type #G_TYPE_STRING and @type
- is ['i'][G-VARIANT-TYPE-INT32:CAPS]. It will also fail for any #GType
- (including e.g. #G_TYPE_OBJECT and #G_TYPE_BOXED derived-types) not
- in the table above.
- Note that if @gvalue is of type #G_TYPE_VARIANT and its value is
- %NULL, the empty #GVariant instance (never %NULL) for @type is
- returned (e.g. 0 for scalar types, the empty string for string types,
- '/' for object path types, the empty array for any array type and so on).
- See the g_dbus_gvariant_to_gvalue() function for how to convert a
- #GVariant to a #GValue.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A #GVariant (never floating) of #GVariantType @type holding
- the data from @gvalue or %NULL in case of failure. Free with
- g_variant_unref().</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </return-value>
- <parameters>
- <parameter name="gvalue" transfer-ownership="none">
- <doc xml:space="preserve">A #GValue to convert to a #GVariant</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariantType</doc>
- <type name="GLib.VariantType" c:type="const GVariantType*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_gvariant_to_gvalue"
- c:identifier="g_dbus_gvariant_to_gvalue"
- version="2.30">
- <doc xml:space="preserve">Converts a #GVariant to a #GValue. If @value is floating, it is consumed.
- The rules specified in the g_dbus_gvalue_to_gvariant() function are
- used - this function is essentially its reverse form.
- The conversion never fails - a valid #GValue is always returned in
- @out_gvalue.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">A #GVariant.</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- <parameter name="out_gvalue"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Return location pointing to a zero-filled (uninitialized) #GValue.</doc>
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_address"
- c:identifier="g_dbus_is_address"
- version="2.26">
- <doc xml:space="preserve">Checks if @string is a D-Bus address.
- This doesn't check if @string is actually supported by #GDBusServer
- or #GDBusConnection - use g_dbus_is_supported_address() to do more
- checks.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @string is a valid D-Bus address, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">A string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_guid" c:identifier="g_dbus_is_guid" version="2.26">
- <doc xml:space="preserve">Checks if @string is a D-Bus GUID.
- See the D-Bus specification regarding what strings are valid D-Bus
- GUID (for example, D-Bus GUIDs are not RFC-4122 compliant).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @string is a guid, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">The string to check.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_interface_name"
- c:identifier="g_dbus_is_interface_name"
- version="2.26">
- <doc xml:space="preserve">Checks if @string is a valid D-Bus interface name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if valid, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">The string to check.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_member_name"
- c:identifier="g_dbus_is_member_name"
- version="2.26">
- <doc xml:space="preserve">Checks if @string is a valid D-Bus member (e.g. signal or method) name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if valid, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">The string to check.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_name" c:identifier="g_dbus_is_name" version="2.26">
- <doc xml:space="preserve">Checks if @string is a valid D-Bus bus name (either unique or well-known).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if valid, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">The string to check.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_supported_address"
- c:identifier="g_dbus_is_supported_address"
- version="2.26"
- throws="1">
- <doc xml:space="preserve">Like g_dbus_is_address() but also checks if the library suppors the
- transports in @string and that key/value pairs for each transport
- are valid.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @string is a valid D-Bus address that is
- supported by this library, %FALSE if @error is set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">A string.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dbus_is_unique_name"
- c:identifier="g_dbus_is_unique_name"
- version="2.26">
- <doc xml:space="preserve">Checks if @string is a valid D-Bus unique bus name.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if valid, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <doc xml:space="preserve">The string to check.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dtls_client_connection_new"
- c:identifier="g_dtls_client_connection_new"
- moved-to="DtlsClientConnection.new"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Creates a new #GDtlsClientConnection wrapping @base_socket which is
- assumed to communicate with the server identified by @server_identity.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GDtlsClientConnection, or %NULL on error</doc>
- <type name="DtlsClientConnection" c:type="GDatagramBased*"/>
- </return-value>
- <parameters>
- <parameter name="base_socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GDatagramBased to wrap</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="server_identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected identity of the server</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="dtls_server_connection_new"
- c:identifier="g_dtls_server_connection_new"
- moved-to="DtlsServerConnection.new"
- version="2.48"
- throws="1">
- <doc xml:space="preserve">Creates a new #GDtlsServerConnection wrapping @base_socket.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GDtlsServerConnection, or %NULL on error</doc>
- <type name="DtlsServerConnection" c:type="GDatagramBased*"/>
- </return-value>
- <parameters>
- <parameter name="base_socket" transfer-ownership="none">
- <doc xml:space="preserve">the #GDatagramBased to wrap</doc>
- <type name="DatagramBased" c:type="GDatagramBased*"/>
- </parameter>
- <parameter name="certificate"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the default server certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="file_new_for_commandline_arg"
- c:identifier="g_file_new_for_commandline_arg"
- moved-to="File.new_for_commandline_arg">
- <doc xml:space="preserve">Creates a #GFile with the given argument from the command line.
- The value of @arg can be either a URI, an absolute path or a
- relative path resolved relative to the current working directory.
- This operation never fails, but the returned object might not
- support any I/O operation if @arg points to a malformed path.
- Note that on Windows, this function expects its argument to be in
- UTF-8 -- not the system code page. This means that you
- should not use this function with string from argv as it is passed
- to main(). g_win32_get_command_line() will return a UTF-8 version of
- the commandline. #GApplication also uses UTF-8 but
- g_application_command_line_create_file_for_arg() may be more useful
- for you there. It is also always possible to use this function with
- #GOptionContext arguments of type %G_OPTION_ARG_FILENAME.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="arg" transfer-ownership="none">
- <doc xml:space="preserve">a command line string</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="file_new_for_commandline_arg_and_cwd"
- c:identifier="g_file_new_for_commandline_arg_and_cwd"
- moved-to="File.new_for_commandline_arg_and_cwd"
- version="2.36">
- <doc xml:space="preserve">Creates a #GFile with the given argument from the command line.
- This function is similar to g_file_new_for_commandline_arg() except
- that it allows for passing the current working directory as an
- argument instead of using the current working directory of the
- process.
- This is useful if the commandline argument was given in a context
- other than the invocation of the current process.
- See also g_application_command_line_create_file_for_arg().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="arg" transfer-ownership="none">
- <doc xml:space="preserve">a command line string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="cwd" transfer-ownership="none">
- <doc xml:space="preserve">the current working directory of the commandline</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="file_new_for_path"
- c:identifier="g_file_new_for_path"
- moved-to="File.new_for_path">
- <doc xml:space="preserve">Constructs a #GFile for a given path. This operation never
- fails, but the returned object might not support any I/O
- operation if @path is malformed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile for the given @path.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">a string containing a relative or absolute path.
- The string must be encoded in the glib filename encoding.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="file_new_for_uri"
- c:identifier="g_file_new_for_uri"
- moved-to="File.new_for_uri">
- <doc xml:space="preserve">Constructs a #GFile for a given URI. This operation never
- fails, but the returned object might not support any I/O
- operation if @uri is malformed or if the uri type is
- not supported.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile for the given @uri.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <doc xml:space="preserve">a UTF-8 string containing a URI</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="file_new_tmp"
- c:identifier="g_file_new_tmp"
- moved-to="File.new_tmp"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Opens a file in the preferred directory for temporary files (as
- returned by g_get_tmp_dir()) and returns a #GFile and
- #GFileIOStream pointing to it.
- @tmpl should be a string in the GLib file name encoding
- containing a sequence of six 'X' characters, and containing no
- directory components. If it is %NULL, a default template is used.
- Unlike the other #GFile constructors, this will return %NULL if
- a temporary file could not be created.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile.
- Free the returned object with g_object_unref().</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="tmpl"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">Template for the file
- name, as in g_file_open_tmp(), or %NULL for a default template</doc>
- <type name="filename" c:type="char*"/>
- </parameter>
- <parameter name="iostream"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">on return, a #GFileIOStream for the created file</doc>
- <type name="FileIOStream" c:type="GFileIOStream**"/>
- </parameter>
- </parameters>
- </function>
- <function name="file_parse_name"
- c:identifier="g_file_parse_name"
- moved-to="File.parse_name">
- <doc xml:space="preserve">Constructs a #GFile with the given @parse_name (i.e. something
- given by g_file_get_parse_name()). This operation never fails,
- but the returned object might not support any I/O operation if
- the @parse_name cannot be parsed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GFile.</doc>
- <type name="File" c:type="GFile*"/>
- </return-value>
- <parameters>
- <parameter name="parse_name" transfer-ownership="none">
- <doc xml:space="preserve">a file name or path to be parsed</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="icon_deserialize"
- c:identifier="g_icon_deserialize"
- moved-to="Icon.deserialize"
- version="2.38">
- <doc xml:space="preserve">Deserializes a #GIcon previously serialized using g_icon_serialize().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon, or %NULL when deserialization fails.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GVariant created with g_icon_serialize()</doc>
- <type name="GLib.Variant" c:type="GVariant*"/>
- </parameter>
- </parameters>
- </function>
- <function name="icon_hash" c:identifier="g_icon_hash" moved-to="Icon.hash">
- <doc xml:space="preserve">Gets a hash for an icon.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint containing a hash for the @icon, suitable for
- use in a #GHashTable or similar data structure.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="icon" transfer-ownership="none">
- <doc xml:space="preserve">#gconstpointer to an icon object.</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="icon_new_for_string"
- c:identifier="g_icon_new_for_string"
- moved-to="Icon.new_for_string"
- version="2.20"
- throws="1">
- <doc xml:space="preserve">Generate a #GIcon instance from @str. This function can fail if
- @str is not valid - see g_icon_to_string() for discussion.
- If your application or library provides one or more #GIcon
- implementations you need to ensure that each #GType is registered
- with the type system prior to calling g_icon_new_for_string().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">An object implementing the #GIcon
- interface or %NULL if @error is set.</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="str" transfer-ownership="none">
- <doc xml:space="preserve">A string obtained via g_icon_to_string().</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="initable_newv"
- c:identifier="g_initable_newv"
- moved-to="Initable.newv"
- version="2.22"
- throws="1">
- <doc xml:space="preserve">Helper function for constructing #GInitable object. This is
- similar to g_object_newv() but also initializes the object
- and returns %NULL, setting an error on failure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a newly allocated
- #GObject, or %NULL on error</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="object_type" transfer-ownership="none">
- <doc xml:space="preserve">a #GType supporting #GInitable.</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="n_parameters" transfer-ownership="none">
- <doc xml:space="preserve">the number of parameters in @parameters</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="parameters" transfer-ownership="none">
- <doc xml:space="preserve">the parameters to use to construct the object</doc>
- <array length="1" zero-terminated="0" c:type="GParameter*">
- <type name="GObject.Parameter" c:type="GParameter"/>
- </array>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_error_from_errno" c:identifier="g_io_error_from_errno">
- <doc xml:space="preserve">Converts errno.h error codes into GIO error codes. The fallback
- value %G_IO_ERROR_FAILED is returned for error codes not currently
- handled (but note that future GLib releases may return a more
- specific value instead).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#GIOErrorEnum value for the given errno.h error number.</doc>
- <type name="IOErrorEnum" c:type="GIOErrorEnum"/>
- </return-value>
- <parameters>
- <parameter name="err_no" transfer-ownership="none">
- <doc xml:space="preserve">Error number as defined in errno.h.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_error_quark" c:identifier="g_io_error_quark">
- <doc xml:space="preserve">Gets the GIO Error Quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="io_extension_point_implement"
- c:identifier="g_io_extension_point_implement"
- moved-to="IOExtensionPoint.implement">
- <doc xml:space="preserve">Registers @type as extension for the extension point with name
- @extension_point_name.
- If @type has already been registered as an extension for this
- extension point, the existing #GIOExtension object is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GIOExtension object for #GType</doc>
- <type name="IOExtension" c:type="GIOExtension*"/>
- </return-value>
- <parameters>
- <parameter name="extension_point_name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the extension point</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <doc xml:space="preserve">the #GType to register as extension</doc>
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="extension_name" transfer-ownership="none">
- <doc xml:space="preserve">the name for the extension</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="priority" transfer-ownership="none">
- <doc xml:space="preserve">the priority for the extension</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_extension_point_lookup"
- c:identifier="g_io_extension_point_lookup"
- moved-to="IOExtensionPoint.lookup">
- <doc xml:space="preserve">Looks up an existing extension point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GIOExtensionPoint, or %NULL if there
- is no registered extension point with the given name.</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">the name of the extension point</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_extension_point_register"
- c:identifier="g_io_extension_point_register"
- moved-to="IOExtensionPoint.register">
- <doc xml:space="preserve">Registers an extension point.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the new #GIOExtensionPoint. This object is
- owned by GIO and should not be freed.</doc>
- <type name="IOExtensionPoint" c:type="GIOExtensionPoint*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">The name of the extension point</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_modules_load_all_in_directory"
- c:identifier="g_io_modules_load_all_in_directory">
- <doc xml:space="preserve">Loads all the modules in the specified directory.
- If don't require all modules to be initialized (and thus registering
- all gtypes) then you can use g_io_modules_scan_all_in_directory()
- which allows delayed/lazy loading of modules.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of #GIOModules loaded
- from the directory,
- All the modules are loaded into memory, if you want to
- unload them (enabling on-demand loading) you must call
- g_type_module_unuse() on all the modules. Free the list
- with g_list_free().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="IOModule"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="dirname" transfer-ownership="none">
- <doc xml:space="preserve">pathname for a directory containing modules to load.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_modules_load_all_in_directory_with_scope"
- c:identifier="g_io_modules_load_all_in_directory_with_scope"
- version="2.30">
- <doc xml:space="preserve">Loads all the modules in the specified directory.
- If don't require all modules to be initialized (and thus registering
- all gtypes) then you can use g_io_modules_scan_all_in_directory()
- which allows delayed/lazy loading of modules.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a list of #GIOModules loaded
- from the directory,
- All the modules are loaded into memory, if you want to
- unload them (enabling on-demand loading) you must call
- g_type_module_unuse() on all the modules. Free the list
- with g_list_free().</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="IOModule"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="dirname" transfer-ownership="none">
- <doc xml:space="preserve">pathname for a directory containing modules to load.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="scope" transfer-ownership="none">
- <doc xml:space="preserve">a scope to use when scanning the modules.</doc>
- <type name="IOModuleScope" c:type="GIOModuleScope*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_modules_scan_all_in_directory"
- c:identifier="g_io_modules_scan_all_in_directory"
- version="2.24">
- <doc xml:space="preserve">Scans all the modules in the specified directory, ensuring that
- any extension point implemented by a module is registered.
- This may not actually load and initialize all the types in each
- module, some modules may be lazily loaded and initialized when
- an extension point it implementes is used with e.g.
- g_io_extension_point_get_extensions() or
- g_io_extension_point_get_extension_by_name().
- If you need to guarantee that all types are loaded in all the modules,
- use g_io_modules_load_all_in_directory().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dirname" transfer-ownership="none">
- <doc xml:space="preserve">pathname for a directory containing modules to scan.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_modules_scan_all_in_directory_with_scope"
- c:identifier="g_io_modules_scan_all_in_directory_with_scope"
- version="2.30">
- <doc xml:space="preserve">Scans all the modules in the specified directory, ensuring that
- any extension point implemented by a module is registered.
- This may not actually load and initialize all the types in each
- module, some modules may be lazily loaded and initialized when
- an extension point it implementes is used with e.g.
- g_io_extension_point_get_extensions() or
- g_io_extension_point_get_extension_by_name().
- If you need to guarantee that all types are loaded in all the modules,
- use g_io_modules_load_all_in_directory().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dirname" transfer-ownership="none">
- <doc xml:space="preserve">pathname for a directory containing modules to scan.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="scope" transfer-ownership="none">
- <doc xml:space="preserve">a scope to use when scanning the modules</doc>
- <type name="IOModuleScope" c:type="GIOModuleScope*"/>
- </parameter>
- </parameters>
- </function>
- <function name="io_scheduler_cancel_all_jobs"
- c:identifier="g_io_scheduler_cancel_all_jobs"
- deprecated="1">
- <doc xml:space="preserve">Cancels all cancellable I/O jobs.
- A job is cancellable if a #GCancellable was passed into
- g_io_scheduler_push_job().</doc>
- <doc-deprecated xml:space="preserve">You should never call this function, since you don't
- know how other libraries in your program might be making use of
- gioscheduler.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="io_scheduler_push_job"
- c:identifier="g_io_scheduler_push_job"
- deprecated="1">
- <doc xml:space="preserve">Schedules the I/O job to run in another thread.
- @notify will be called on @user_data after @job_func has returned,
- regardless whether the job was cancelled or has run to completion.
- If @cancellable is not %NULL, it can be used to cancel the I/O job
- by calling g_cancellable_cancel() or by calling
- g_io_scheduler_cancel_all_jobs().</doc>
- <doc-deprecated xml:space="preserve">use #GThreadPool or g_task_run_in_thread()</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="job_func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GIOSchedulerJobFunc.</doc>
- <type name="IOSchedulerJobFunc" c:type="GIOSchedulerJobFunc"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to pass to @job_func</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify for @user_data, or %NULL</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="io_priority" transfer-ownership="none">
- <doc xml:space="preserve">the [I/O priority][io-priority]
- of the request.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="network_monitor_get_default"
- c:identifier="g_network_monitor_get_default"
- moved-to="NetworkMonitor.get_default"
- version="2.32">
- <doc xml:space="preserve">Gets the default #GNetworkMonitor for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GNetworkMonitor</doc>
- <type name="NetworkMonitor" c:type="GNetworkMonitor*"/>
- </return-value>
- </function>
- <function name="networking_init"
- c:identifier="g_networking_init"
- version="2.36">
- <doc xml:space="preserve">Initializes the platform networking libraries (eg, on Windows, this
- calls WSAStartup()). GLib will call this itself if it is needed, so
- you only need to call it if you directly call system networking
- functions (without calling any GLib networking functions first).</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="pollable_source_new"
- c:identifier="g_pollable_source_new"
- version="2.28">
- <doc xml:space="preserve">Utility method for #GPollableInputStream and #GPollableOutputStream
- implementations. Creates a new #GSource that expects a callback of
- type #GPollableSourceFunc. The new source does not actually do
- anything on its own; use g_source_add_child_source() to add other
- sources to it to cause it to trigger.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GSource.</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <parameter name="pollable_stream" transfer-ownership="none">
- <doc xml:space="preserve">the stream associated with the new source</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="pollable_source_new_full"
- c:identifier="g_pollable_source_new_full"
- version="2.34">
- <doc xml:space="preserve">Utility method for #GPollableInputStream and #GPollableOutputStream
- implementations. Creates a new #GSource, as with
- g_pollable_source_new(), but also attaching @child_source (with a
- dummy callback), and @cancellable, if they are non-%NULL.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new #GSource.</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- <parameters>
- <parameter name="pollable_stream" transfer-ownership="none">
- <doc xml:space="preserve">the stream associated with the
- new source</doc>
- <type name="GObject.Object" c:type="gpointer"/>
- </parameter>
- <parameter name="child_source"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional child source to attach</doc>
- <type name="GLib.Source" c:type="GSource*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable to attach</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="pollable_stream_read"
- c:identifier="g_pollable_stream_read"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Tries to read from @stream, as with g_input_stream_read() (if
- @blocking is %TRUE) or g_pollable_input_stream_read_nonblocking()
- (if @blocking is %FALSE). This can be used to more easily share
- code between blocking and non-blocking implementations of a method.
- If @blocking is %FALSE, then @stream must be a
- #GPollableInputStream for which g_pollable_input_stream_can_poll()
- returns %TRUE, or else the behavior is undefined. If @blocking is
- %TRUE, then @stream does not need to be a #GPollableInputStream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes read, or -1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GInputStream</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a buffer to
- read data into</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to read</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="blocking" transfer-ownership="none">
- <doc xml:space="preserve">whether to do blocking I/O</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="pollable_stream_write"
- c:identifier="g_pollable_stream_write"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Tries to write to @stream, as with g_output_stream_write() (if
- @blocking is %TRUE) or g_pollable_output_stream_write_nonblocking()
- (if @blocking is %FALSE). This can be used to more easily share
- code between blocking and non-blocking implementations of a method.
- If @blocking is %FALSE, then @stream must be a
- #GPollableOutputStream for which
- g_pollable_output_stream_can_poll() returns %TRUE or else the
- behavior is undefined. If @blocking is %TRUE, then @stream does not
- need to be a #GPollableOutputStream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes written, or -1 on error.</doc>
- <type name="gssize" c:type="gssize"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer
- containing the data to write.</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="blocking" transfer-ownership="none">
- <doc xml:space="preserve">whether to do blocking I/O</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="pollable_stream_write_all"
- c:identifier="g_pollable_stream_write_all"
- version="2.34"
- throws="1">
- <doc xml:space="preserve">Tries to write @count bytes to @stream, as with
- g_output_stream_write_all(), but using g_pollable_stream_write()
- rather than g_output_stream_write().
- On a successful write of @count bytes, %TRUE is returned, and
- @bytes_written is set to @count.
- If there is an error during the operation (including
- %G_IO_ERROR_WOULD_BLOCK in the non-blocking case), %FALSE is
- returned and @error is set to indicate the error status,
- @bytes_written is updated to contain the number of bytes written
- into the stream before the error occurred.
- As with g_pollable_stream_write(), if @blocking is %FALSE, then
- @stream must be a #GPollableOutputStream for which
- g_pollable_output_stream_can_poll() returns %TRUE or else the
- behavior is undefined. If @blocking is %TRUE, then @stream does not
- need to be a #GPollableOutputStream.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="stream" transfer-ownership="none">
- <doc xml:space="preserve">a #GOutputStream.</doc>
- <type name="OutputStream" c:type="GOutputStream*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer
- containing the data to write.</doc>
- <array length="2" zero-terminated="0" c:type="void*">
- <type name="guint8"/>
- </array>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to write</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="blocking" transfer-ownership="none">
- <doc xml:space="preserve">whether to do blocking I/O</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="bytes_written"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">location to store the number of bytes that was
- written to the stream</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="cancellable"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">optional #GCancellable object, %NULL to ignore.</doc>
- <type name="Cancellable" c:type="GCancellable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="proxy_get_default_for_protocol"
- c:identifier="g_proxy_get_default_for_protocol"
- moved-to="Proxy.get_default_for_protocol"
- version="2.26">
- <doc xml:space="preserve">Lookup "gio-proxy" extension point for a proxy implementation that supports
- specified protocol.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">return a #GProxy or NULL if protocol
- is not supported.</doc>
- <type name="Proxy" c:type="GProxy*"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <doc xml:space="preserve">the proxy protocol name (e.g. http, socks, etc)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="proxy_resolver_get_default"
- c:identifier="g_proxy_resolver_get_default"
- moved-to="ProxyResolver.get_default"
- version="2.26">
- <doc xml:space="preserve">Gets the default #GProxyResolver for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default #GProxyResolver.</doc>
- <type name="ProxyResolver" c:type="GProxyResolver*"/>
- </return-value>
- </function>
- <function name="resolver_error_quark"
- c:identifier="g_resolver_error_quark"
- moved-to="ResolverError.quark"
- version="2.22">
- <doc xml:space="preserve">Gets the #GResolver Error Quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="resource_error_quark"
- c:identifier="g_resource_error_quark"
- moved-to="ResourceError.quark"
- version="2.32">
- <doc xml:space="preserve">Gets the #GResource Error Quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="resource_load"
- c:identifier="g_resource_load"
- moved-to="Resource.load"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Loads a binary resource bundle and creates a #GResource representation of it, allowing
- you to query it for data.
- If you want to use this resource in the global resource namespace you need
- to register it with g_resources_register().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GResource, or %NULL on error</doc>
- <type name="Resource" c:type="GResource*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">the path of a filename to load, in the GLib filename encoding</doc>
- <type name="filename" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="resources_enumerate_children"
- c:identifier="g_resources_enumerate_children"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Returns all the names of children at the specified @path in the set of
- globally registered resources.
- The return result is a %NULL terminated list of strings which should
- be released with g_strfreev().
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">an array of constant strings</doc>
- <array c:type="char**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="resources_get_info"
- c:identifier="g_resources_get_info"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Looks for a file at the specified @path in the set of
- globally registered resources and if found returns information about it.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the file was found. %FALSE if there were errors</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the length of the contents of the file,
- or %NULL if the length is not needed</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- <parameter name="flags"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a location to place the flags about the file,
- or %NULL if the length is not needed</doc>
- <type name="guint32" c:type="guint32*"/>
- </parameter>
- </parameters>
- </function>
- <function name="resources_lookup_data"
- c:identifier="g_resources_lookup_data"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Looks for a file at the specified @path in the set of
- globally registered resources and returns a #GBytes that
- lets you directly access the data in memory.
- The data is always followed by a zero byte, so you
- can safely use the data as a C string. However, that byte
- is not included in the size of the GBytes.
- For uncompressed resource files this is a pointer directly into
- the resource bundle, which is typically in some readonly data section
- in the program binary. For compressed files we allocate memory on
- the heap and automatically uncompress the data.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GBytes or %NULL on error.
- Free the returned object with g_bytes_unref()</doc>
- <type name="GLib.Bytes" c:type="GBytes*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="resources_open_stream"
- c:identifier="g_resources_open_stream"
- version="2.32"
- throws="1">
- <doc xml:space="preserve">Looks for a file at the specified @path in the set of
- globally registered resources and returns a #GInputStream
- that lets you read the data.
- @lookup_flags controls the behaviour of the lookup.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GInputStream or %NULL on error.
- Free the returned object with g_object_unref()</doc>
- <type name="InputStream" c:type="GInputStream*"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <doc xml:space="preserve">A pathname inside the resource</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="lookup_flags" transfer-ownership="none">
- <doc xml:space="preserve">A #GResourceLookupFlags</doc>
- <type name="ResourceLookupFlags" c:type="GResourceLookupFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="resources_register"
- c:identifier="g_resources_register"
- version="2.32">
- <doc xml:space="preserve">Registers the resource with the process-global set of resources.
- Once a resource is registered the files in it can be accessed
- with the global resource lookup functions like g_resources_lookup_data().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </parameter>
- </parameters>
- </function>
- <function name="resources_unregister"
- c:identifier="g_resources_unregister"
- version="2.32">
- <doc xml:space="preserve">Unregisters the resource from the process-global set of resources.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resource" transfer-ownership="none">
- <doc xml:space="preserve">A #GResource</doc>
- <type name="Resource" c:type="GResource*"/>
- </parameter>
- </parameters>
- </function>
- <function name="settings_schema_source_get_default"
- c:identifier="g_settings_schema_source_get_default"
- moved-to="SettingsSchemaSource.get_default"
- version="2.32">
- <doc xml:space="preserve">Gets the default system schema source.
- This function is not required for normal uses of #GSettings but it
- may be useful to authors of plugin management systems or to those who
- want to introspect the content of schemas.
- If no schemas are installed, %NULL will be returned.
- The returned source may actually consist of multiple schema sources
- from different directories, depending on which directories were given
- in `XDG_DATA_DIRS` and `GSETTINGS_SCHEMA_DIR`. For this reason, all
- lookups performed against the default source should probably be done
- recursively.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the default schema source</doc>
- <type name="SettingsSchemaSource" c:type="GSettingsSchemaSource*"/>
- </return-value>
- </function>
- <function name="simple_async_report_error_in_idle"
- c:identifier="g_simple_async_report_error_in_idle"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Reports an error in an asynchronous function in an idle function by
- directly setting the contents of the #GAsyncResult with the given error
- information.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_report_error().</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL.</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark containing the error domain (usually #G_IO_ERROR).</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <doc xml:space="preserve">a specific error code.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a formatted error reporting string.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">a list of variables to fill in @format.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="simple_async_report_gerror_in_idle"
- c:identifier="g_simple_async_report_gerror_in_idle"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Reports an error in an idle function. Similar to
- g_simple_async_report_error_in_idle(), but takes a #GError rather
- than building a new one.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_report_error().</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">the #GError to report</doc>
- <type name="GLib.Error" c:type="const GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="simple_async_report_take_gerror_in_idle"
- c:identifier="g_simple_async_report_take_gerror_in_idle"
- version="2.28"
- introspectable="0"
- deprecated="1"
- deprecated-version="2.46">
- <doc xml:space="preserve">Reports an error in an idle function. Similar to
- g_simple_async_report_gerror_in_idle(), but takes over the caller's
- ownership of @error, so the caller does not have to free it any more.</doc>
- <doc-deprecated xml:space="preserve">Use g_task_report_error().</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GObject, or %NULL</doc>
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- scope="async"
- closure="2">
- <doc xml:space="preserve">a #GAsyncReadyCallback.</doc>
- <type name="AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data passed to @callback.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <doc xml:space="preserve">the #GError to report</doc>
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- </parameters>
- </function>
- <function name="srv_target_list_sort"
- c:identifier="g_srv_target_list_sort"
- moved-to="SrvTarget.list_sort"
- version="2.22"
- introspectable="0">
- <doc xml:space="preserve">Sorts @targets in place according to the algorithm in RFC 2782.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the head of the sorted list.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="targets" transfer-ownership="none">
- <doc xml:space="preserve">a #GList of #GSrvTarget</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <function name="tls_backend_get_default"
- c:identifier="g_tls_backend_get_default"
- moved-to="TlsBackend.get_default"
- version="2.28">
- <doc xml:space="preserve">Gets the default #GTlsBackend for the system.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GTlsBackend</doc>
- <type name="TlsBackend" c:type="GTlsBackend*"/>
- </return-value>
- </function>
- <function name="tls_client_connection_new"
- c:identifier="g_tls_client_connection_new"
- moved-to="TlsClientConnection.new"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a new #GTlsClientConnection wrapping @base_io_stream (which
- must have pollable input and output streams) which is assumed to
- communicate with the server identified by @server_identity.
- See the documentation for #GTlsConnection:base-io-stream for restrictions
- on when application code can run operations on the @base_io_stream after
- this function has returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GTlsClientConnection, or %NULL on error</doc>
- <type name="TlsClientConnection" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_io_stream" transfer-ownership="none">
- <doc xml:space="preserve">the #GIOStream to wrap</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="server_identity"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the expected identity of the server</doc>
- <type name="SocketConnectable" c:type="GSocketConnectable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tls_error_quark"
- c:identifier="g_tls_error_quark"
- moved-to="TlsError.quark"
- version="2.28">
- <doc xml:space="preserve">Gets the TLS error quark.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark.</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="tls_file_database_new"
- c:identifier="g_tls_file_database_new"
- moved-to="TlsFileDatabase.new"
- version="2.30"
- throws="1">
- <doc xml:space="preserve">Creates a new #GTlsFileDatabase which uses anchor certificate authorities
- in @anchors to verify certificate chains.
- The certificates in @anchors must be PEM encoded.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GTlsFileDatabase, or %NULL on error</doc>
- <type name="TlsFileDatabase" c:type="GTlsDatabase*"/>
- </return-value>
- <parameters>
- <parameter name="anchors" transfer-ownership="none">
- <doc xml:space="preserve">filename of anchor certificate authorities.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tls_server_connection_new"
- c:identifier="g_tls_server_connection_new"
- moved-to="TlsServerConnection.new"
- version="2.28"
- throws="1">
- <doc xml:space="preserve">Creates a new #GTlsServerConnection wrapping @base_io_stream (which
- must have pollable input and output streams).
- See the documentation for #GTlsConnection:base-io-stream for restrictions
- on when application code can run operations on the @base_io_stream after
- this function has returned.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the new
- #GTlsServerConnection, or %NULL on error</doc>
- <type name="TlsServerConnection" c:type="GIOStream*"/>
- </return-value>
- <parameters>
- <parameter name="base_io_stream" transfer-ownership="none">
- <doc xml:space="preserve">the #GIOStream to wrap</doc>
- <type name="IOStream" c:type="GIOStream*"/>
- </parameter>
- <parameter name="certificate"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the default server certificate, or %NULL</doc>
- <type name="TlsCertificate" c:type="GTlsCertificate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_is_mount_path_system_internal"
- c:identifier="g_unix_is_mount_path_system_internal">
- <doc xml:space="preserve">Determines if @mount_path is considered an implementation of the
- OS. This is primarily used for hiding mountable and mounted volumes
- that only are used in the OS and has little to no relevance to the
- casual user.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mount_path is considered an implementation detail
- of the OS.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount_path" transfer-ownership="none">
- <doc xml:space="preserve">a mount path, e.g. `/media/disk` or `/usr`</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_at"
- c:identifier="g_unix_mount_at"
- introspectable="0">
- <doc xml:space="preserve">Gets a #GUnixMountEntry for a given mount path. If @time_read
- is set, it will be filled with a unix timestamp for checking
- if the mounts have changed since with g_unix_mounts_changed_since().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GUnixMountEntry.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </return-value>
- <parameters>
- <parameter name="mount_path" transfer-ownership="none">
- <doc xml:space="preserve">path for a possible unix mount.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="time_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">guint64 to contain a timestamp.</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_compare" c:identifier="g_unix_mount_compare">
- <doc xml:space="preserve">Compares two unix mounts.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">1, 0 or -1 if @mount1 is greater than, equal to,
- or less than @mount2, respectively.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="mount1" transfer-ownership="none">
- <doc xml:space="preserve">first #GUnixMountEntry to compare.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- <parameter name="mount2" transfer-ownership="none">
- <doc xml:space="preserve">second #GUnixMountEntry to compare.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_free" c:identifier="g_unix_mount_free">
- <doc xml:space="preserve">Frees a unix mount.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountEntry.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_get_device_path"
- c:identifier="g_unix_mount_get_device_path">
- <doc xml:space="preserve">Gets the device path for a unix mount.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the device path.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMount.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_get_fs_type"
- c:identifier="g_unix_mount_get_fs_type">
- <doc xml:space="preserve">Gets the filesystem type for the unix mount.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string containing the file system type.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMount.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_get_mount_path"
- c:identifier="g_unix_mount_get_mount_path">
- <doc xml:space="preserve">Gets the mount path for a unix mount.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the mount path for @mount_entry.</doc>
- <type name="utf8" c:type="const char*"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">input #GUnixMountEntry to get the mount path for.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_guess_can_eject"
- c:identifier="g_unix_mount_guess_can_eject">
- <doc xml:space="preserve">Guesses whether a Unix mount can be ejected.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mount_entry is deemed to be ejectable.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountEntry</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_guess_icon"
- c:identifier="g_unix_mount_guess_icon">
- <doc xml:space="preserve">Guesses the icon of a Unix mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountEntry</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_guess_name"
- c:identifier="g_unix_mount_guess_name">
- <doc xml:space="preserve">Guesses the name of a Unix mount.
- The result is a translated string.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A newly allocated string that must
- be freed with g_free()</doc>
- <type name="utf8" c:type="char*"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountEntry</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_guess_should_display"
- c:identifier="g_unix_mount_guess_should_display">
- <doc xml:space="preserve">Guesses whether a Unix mount should be displayed in the UI.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mount_entry is deemed to be displayable.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountEntry</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_guess_symbolic_icon"
- c:identifier="g_unix_mount_guess_symbolic_icon"
- version="2.34">
- <doc xml:space="preserve">Guesses the symbolic icon of a Unix mount.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GIcon</doc>
- <type name="Icon" c:type="GIcon*"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMountEntry</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_is_readonly"
- c:identifier="g_unix_mount_is_readonly">
- <doc xml:space="preserve">Checks if a unix mount is mounted read only.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @mount_entry is read only.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMount.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_is_system_internal"
- c:identifier="g_unix_mount_is_system_internal">
- <doc xml:space="preserve">Checks if a unix mount is a system path.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the unix mount is for a system path.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mount_entry" transfer-ownership="none">
- <doc xml:space="preserve">a #GUnixMount.</doc>
- <type name="UnixMountEntry" c:type="GUnixMountEntry*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_points_changed_since"
- c:identifier="g_unix_mount_points_changed_since">
- <doc xml:space="preserve">Checks if the unix mount points have changed since a given unix time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mount points have changed since @time.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">guint64 to contain a timestamp.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mount_points_get"
- c:identifier="g_unix_mount_points_get"
- introspectable="0">
- <doc xml:space="preserve">Gets a #GList of #GUnixMountPoint containing the unix mount points.
- If @time_read is set, it will be filled with the mount timestamp,
- allowing for checking if the mounts have changed with
- g_unix_mount_points_changed_since().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- a #GList of the UNIX mountpoints.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="UnixMountPoint"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="time_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">guint64 to contain a timestamp.</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mounts_changed_since"
- c:identifier="g_unix_mounts_changed_since">
- <doc xml:space="preserve">Checks if the unix mounts have changed since a given unix time.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mounts have changed since @time.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">guint64 to contain a timestamp.</doc>
- <type name="guint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="unix_mounts_get"
- c:identifier="g_unix_mounts_get"
- introspectable="0">
- <doc xml:space="preserve">Gets a #GList of #GUnixMountEntry containing the unix mounts.
- If @time_read is set, it will be filled with the mount
- timestamp, allowing for checking if the mounts have changed
- with g_unix_mounts_changed_since().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">
- a #GList of the UNIX mounts.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="UnixMountEntry"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="time_read"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">guint64 to contain a timestamp, or %NULL</doc>
- <type name="guint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </function>
- </namespace>
- </repository>
|